diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/pom.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/pom.xml index 5af245e72..c04f646cb 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/pom.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/pom.xml @@ -125,6 +125,10 @@ com.cf.imes cf-spring-boot-starter-biz-data-permission + + uk.co.jemos.podam + podam + diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/OptimizePlanController.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/OptimizePlanController.java index 937bc7051..1bd016630 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/OptimizePlanController.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/OptimizePlanController.java @@ -1,10 +1,13 @@ package com.cf.imes.module.executor.controller.admin.plan; +import cn.hutool.core.util.RandomUtil; import com.cf.imes.framework.common.pojo.CommonResult; import com.cf.imes.framework.operatelog.core.annotations.OperateLog; import com.cf.imes.module.executor.controller.admin.plan.vo.*; import com.cf.imes.module.executor.service.optimizeplan.OptimizePlanService; +import com.cf.imes.module.executor.util.RandomUtils; import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.security.access.prepost.PreAuthorize; @@ -76,9 +79,12 @@ public class OptimizePlanController { @GetMapping("/getOptimizePlanParam") @Operation(summary = "获取优化排单参数 (未完成)") @PreAuthorize("@ss.hasPermission('executor:optimize-plate:create')") - public CommonResult getOptimizePlanParam (@RequestParam @Valid @NotNull(message = "排单id不能空") Long planId) { + @Parameter(name = "planId", description = "排单id", required = false) + public CommonResult getOptimizePlanParam (@RequestParam (required = false) Long planId) { + OptimizeParamRespVO data = RandomUtils.randomPojo(OptimizeParamRespVO.class); + return CommonResult.success(data); //todo - return CommonResult.success(optimizePlanService.getOptimizePlanParam(planId)); + //return CommonResult.success(optimizePlanService.getOptimizePlanParam(planId)); } } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/BlockPlaceMessage.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/BlockPlaceMessage.java new file mode 100644 index 000000000..2783e7db1 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/BlockPlaceMessage.java @@ -0,0 +1,52 @@ +package com.cf.imes.module.executor.controller.admin.plan.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +/** + * @author Beal + */ +@Data +public class BlockPlaceMessage { + + @Schema(description = "zzInfo") + private String zzInfo; + @Schema(description = "Bi") + private Integer bi; + @Schema(description = "Bo") + private Long bo; + @Schema(description = "X") + private Double x; + @Schema(description = "Y") + private Double y; + @Schema(description = "Pi") + private Double pi; + @Schema(description = "Ps") + private Double ps; + @Schema(description = "Ci") + private Double ci; + @Schema(description = "Ca") + private Double ca; + @Schema(description = "CP") + private Double cP; + private Boolean iA; + private Boolean iO; + @Schema(description = "Dh") + private Boolean dh; + @Schema(description = "Dm") + private Boolean dm; + @Schema(description = "OF") + private Integer oF; + private Integer type; + private List pointList; + @Schema(description = "OrgSizeOutOff") + private OrgSizeOutOff orgSizeOutOff; + @Schema(description = "SizeOutOff") + private SizeOutOff sizeOutOff; + @Schema(description = "PlaceOffX") + private Double placeOffX; + @Schema(description = "PlaceOffY") + private Double placeOffY; +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/HoleDetail.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/HoleDetail.java new file mode 100644 index 000000000..fbb569bb3 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/HoleDetail.java @@ -0,0 +1,26 @@ +package com.cf.imes.module.executor.controller.admin.plan.dto; + +import lombok.Data; + +/** + * @projectName: cf_imes_server + * @author: 晨丰科技 + * @date: 2024/3/22 16:58 + */ +@Data +public class HoleDetail { + + private Integer holeId; + private Integer holeType;// 请定义HoleType枚举类型 + private Integer face; // 请定义FaceType枚举类型 + private Integer pointX; + private Integer pointY; + private Integer pointZ; + private Integer radius; + private Integer depth; + private Integer endPoint; + private Integer pointX2; + private Integer pointY2; + private Integer angle; + +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/Metrial.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/Metrial.java new file mode 100644 index 000000000..21ae3671e --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/Metrial.java @@ -0,0 +1,87 @@ +package com.cf.imes.module.executor.controller.admin.plan.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import java.util.Date; +import java.util.List; + +/** + * @author Beal + */ +@Data +public class Metrial { + + @Schema(description = "生产单id") + private String orderId; + @Schema(description = "商品id") + private Integer goodsID; + @Schema(description = "商品名称") + private String goodsName; + @Schema(description = "Specification") + private String specification; + @Schema(description = "材质") + private String metrial; + @Schema(description = "颜色") + private String color; + @Schema(description = "Brank") + private String brank; + @Schema(description = "宽") + private Integer width; + @Schema(description = "长") + private Integer length; + @Schema(description = "厚") + private Integer thickness; + @Schema(description = "Border") + private Integer border; + @Schema(description = "CutDia") + private Integer cutDia; + @Schema(description = "CutGap") + private Integer cutGap; + @Schema(description = "IsSorted") + private Boolean isSorted; + @Schema(description = "BoardCount") + private Integer boardCount; + @Schema(description = "MinBoardID") + private Integer minBoardID; + @Schema(description = "MaxBoardID") + private Integer maxBoardID; + @Schema(description = "AvgLyr_All") + private Double avgLyr_All; + @Schema(description = "AvgLyr_NoLastOne") + private Integer avgLyr_NoLastOne; + @Schema(description = "Lyr_LastOne") + private Double lyr_LastOne; + @Schema(description = "organId") + private Integer organId; + @Schema(description = "usedBoardMessageList") + private List usedBoardMessageList; + @Schema(description = "blockPlaceMessageList") + private List blockPlaceMessageList; + @Schema(description = "State") + private Integer state; + @Schema(description = "HasWave") + private Boolean hasWave; + @Schema(description = "OrgWidth") + private Integer orgWidth; + @Schema(description = "OrgLength") + private Integer orgLength; + @Schema(description = "BoardCount_Remain") + private Integer boardCount_Remain; + @Schema(description = "RemainBoardMessage") + private String remainBoardMessage; + @Schema(description = "PreCutValue") + private Integer preCutValue; + @Schema(description = "ScrapBoardList") + private List scrapBoardList; + @Schema(description = "HelpCut") + private Boolean helpCut; + @Schema(description = "SameKnifeHelpCutGap") + private Integer sameKnifeHelpCutGap; + @Schema(description = "CutKnifeID") + private Integer cutKnifeID; + @Schema(description = "HelpKnifeID") + private Integer helpKnifeID; + @Schema(description = "LastSaveDate") + private Date lastSaveDate; + +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/ModelDetail.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/ModelDetail.java new file mode 100644 index 000000000..de16af87a --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/ModelDetail.java @@ -0,0 +1,25 @@ +package com.cf.imes.module.executor.controller.admin.plan.dto; + +import com.cf.imes.module.executor.util.deviseData.IOriginModelingData; +import lombok.Data; + +import java.util.List; + +/** + * @projectName: cf_imes_server + * @author: 晨丰科技 + * @date: 2024/3/22 16:53 + */ +@Data +public class ModelDetail { + + private Integer modelId; + private Integer lineId; + private Integer face; + private String knifeName; + private Integer knifeRadius; + private Integer depth; + private IOriginModelingData originModeling; + private List pointList; + private List offSetList; +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/OffSetList.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/OffSetList.java new file mode 100644 index 000000000..3fd7d5b17 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/OffSetList.java @@ -0,0 +1,16 @@ +package com.cf.imes.module.executor.controller.admin.plan.dto; + +/** + * @projectName: cf_imes_server + * @author: 晨丰科技 + * @date: 2024/3/22 16:51 + */ +public class OffSetList { + + private String name; + private Integer face;// 请定义FaceType枚举类型 + private Integer value; + private Integer radius; + private Integer deep; + private Integer angle; +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/OrgPointDetail.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/OrgPointDetail.java new file mode 100644 index 000000000..8502cc558 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/OrgPointDetail.java @@ -0,0 +1,24 @@ +package com.cf.imes.module.executor.controller.admin.plan.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @projectName: cf_imes_server + * @author: 晨丰科技 + * @date: 2024/3/22 17:00 + */ +@Data +public class OrgPointDetail { + @Schema(description = "点id") + private Long pointId; + @Schema(description = "x") + private Double pointX; + @Schema(description = "y") + private Double pointY; + @Schema(description = "曲线") + private Double curve; + @Schema(description = "密封尺寸") + private Double sealSize; + +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/OrgSizeOutOff.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/OrgSizeOutOff.java new file mode 100644 index 000000000..38dfa8404 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/OrgSizeOutOff.java @@ -0,0 +1,19 @@ +package com.cf.imes.module.executor.controller.admin.plan.dto; + +import lombok.Data; + +/** + * @author Beal + */ +@Data +public class OrgSizeOutOff { + private Integer left; + private Integer right; + private Integer upper; + private Integer under; + private Integer width; + private Integer length; + private Integer outWidth; + private Integer outLength; + private Boolean hasDone; +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/Point.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/Point.java new file mode 100644 index 000000000..c8550b3ba --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/Point.java @@ -0,0 +1,12 @@ +package com.cf.imes.module.executor.controller.admin.plan.dto; + +import lombok.Data; + +/** + * @author Beal + */ +@Data +public class Point { + private Double x; + private Double y; +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/PointDetail.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/PointDetail.java new file mode 100644 index 000000000..50173769f --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/PointDetail.java @@ -0,0 +1,24 @@ +package com.cf.imes.module.executor.controller.admin.plan.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * @projectName: cf_imes_server + * @author: 晨丰科技 + * @date: 2024/3/22 16:57 + */ +@Data +public class PointDetail { + + @Schema(description = "点id") + private Long pointId; + @Schema(description = "x") + private Double pointX; + @Schema(description = "y") + private Double pointY; + @Schema(description = "曲线") + private Double curve; + @Schema(description = "密封尺寸") + private Double sealSize; +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/PointList.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/PointList.java new file mode 100644 index 000000000..47ce2a517 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/PointList.java @@ -0,0 +1,16 @@ +package com.cf.imes.module.executor.controller.admin.plan.dto; + +/** + * @projectName: cf_imes_server + * @author: 晨丰科技 + * @date: 2024/3/22 16:49 + */ +public class PointList { + private Integer lineId; + private Integer pointId; + private Integer pointX; + private Integer pointY; + private Integer radius; + private Integer depth; + private Integer curve; +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/ScrapBlock.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/ScrapBlock.java new file mode 100644 index 000000000..4993cae08 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/ScrapBlock.java @@ -0,0 +1,30 @@ +package com.cf.imes.module.executor.controller.admin.plan.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +/** + * @author Beal + */ +@Data +public class ScrapBlock { + @Schema(description = "ScrapNo") + private Long scrapNo; + @Schema(description = "IsUnRegular") + private Boolean isUnRegular; + @Schema(description = "IsOverlap") + private Boolean isOverlap; + private Boolean isInstored; + private List points; + private String remark; + @Schema(description = "PlaceX") + private Double placeX; + @Schema(description = "PlaceY") + private Double placeY; + @Schema(description = "PlaceWidth") + private Double placeWidth; + @Schema(description = "PlaceLength") + private Double placeLength; +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/ScrapPt.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/ScrapPt.java new file mode 100644 index 000000000..895d77ab9 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/ScrapPt.java @@ -0,0 +1,13 @@ +package com.cf.imes.module.executor.controller.admin.plan.dto; + +import lombok.Data; + +/** + * @author Beal + */ +@Data +public class ScrapPt { + private Double x; + private Double y; + private Double bul; +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/SideHoleDetail.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/SideHoleDetail.java new file mode 100644 index 000000000..cf2203bba --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/SideHoleDetail.java @@ -0,0 +1,25 @@ +package com.cf.imes.module.executor.controller.admin.plan.dto; + +import lombok.Data; + +/** + * @projectName: cf_imes_server + * @author: 晨丰科技 + * @date: 2024/3/22 18:02 + */ +@Data +public class SideHoleDetail { + + private Integer holeID; + private Integer holeType; // 请定义HoleType枚举类型 + private Integer face; // 请定义FaceType枚举类型 + private Integer pointX; + private Integer pointY; + private Integer pointZ; + private Integer radius; + private Integer depth; + private String endPoint; + private Integer pointX2; + private Integer pointY2; + private Integer angle; +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/SideModelDetail.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/SideModelDetail.java new file mode 100644 index 000000000..8a55b0d9f --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/SideModelDetail.java @@ -0,0 +1,25 @@ +package com.cf.imes.module.executor.controller.admin.plan.dto; + +import com.cf.imes.module.executor.util.deviseData.IOriginModelingData; +import lombok.Data; + +import java.util.List; + +/** + * @projectName: cf_imes_server + * @author: 晨丰科技 + * @date: 2024/3/22 17:59 + */ +@Data +public class SideModelDetail { + + private Integer modelId; + private Integer lineId; + private int face; + private String knifeName; + private Integer knifeRadius; + private Integer depth; + private IOriginModelingData originModeling; + private List pointList; + private List offSetList; +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/SizeOutOff.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/SizeOutOff.java new file mode 100644 index 000000000..6ae8e9ee5 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/SizeOutOff.java @@ -0,0 +1,19 @@ +package com.cf.imes.module.executor.controller.admin.plan.dto; + +import lombok.Data; + +/** + * @author Beal + */ +@Data +public class SizeOutOff { + private Double left; + private Double right; + private Double upper; + private Double under; + private Double width; + private Double length; + private Double outWidth; + private Double outLength; + private Boolean hasDone; +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/UsedBoardMessage.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/UsedBoardMessage.java new file mode 100644 index 000000000..7c771fbdb --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/dto/UsedBoardMessage.java @@ -0,0 +1,37 @@ +package com.cf.imes.module.executor.controller.admin.plan.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +/** + * @author Beal + */ +@Data +public class UsedBoardMessage { + @Schema(description = "Bi") + private Integer bi; + @Schema(description = "W") + private Integer w; + @Schema(description = "L") + private Integer l; + @Schema(description = "Si") + private Integer si; + @Schema(description = "So") + private String so; + @Schema(description = "No") + private String no; + @Schema(description = "RM") + private String rM; + @Schema(description = "LK") + private Boolean lK; + private List scrapPtList; + private List scrapBlocks; + @Schema(description = "LE") + private Boolean lE; + @Schema(description = "RE") + private Boolean rE; + @Schema(description = "WLs") + private List wLs; +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/OptimizeParamRespVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/OptimizeParamRespVO.java index 312ab43aa..b83513d50 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/OptimizeParamRespVO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/OptimizeParamRespVO.java @@ -1,6 +1,7 @@ package com.cf.imes.module.executor.controller.admin.plan.vo; import com.cf.imes.module.executor.controller.admin.goods.vo.GoodsRespVO; +import com.cf.imes.module.executor.controller.admin.plan.dto.Metrial; import com.cf.imes.module.executor.controller.admin.plate.vo.PlateRespVO; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.v3.oas.annotations.media.Schema; @@ -47,13 +48,16 @@ public class OptimizeParamRespVO { @Schema(description = "生产时间") @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT) private Date produceTime; - @Schema(description = "生产单列表") private List orderList; - + @Schema(description = "MetrialList") + private List metrialList; @Schema(description = "商品列表") private List goodsList; - @Schema(description = "小板列表") private List plateList; + @Schema(description = "区域删除") + private Boolean areaDeleted; + @Schema(description = "源id") + private Long sourceNo; } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/KaiLiaoSize.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/KaiLiaoSize.java new file mode 100644 index 000000000..5140b947c --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/KaiLiaoSize.java @@ -0,0 +1,12 @@ +package com.cf.imes.module.executor.controller.admin.plate.vo; + +import lombok.Data; + +/** + * @author Beal + */ +@Data +public class KaiLiaoSize { + private Double width; + private Double height; +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/OffSet.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/OffSet.java new file mode 100644 index 000000000..9f5a7b8d5 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/OffSet.java @@ -0,0 +1,13 @@ +package com.cf.imes.module.executor.controller.admin.plate.vo; + +import lombok.Data; + +/** + * @author Beal + */ +@Data +public class OffSet { + private Integer x; + private Integer y; + private Integer z; +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/PlateDetailVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/PlateDetailVO.java new file mode 100644 index 000000000..a0e6eedfc --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/PlateDetailVO.java @@ -0,0 +1,46 @@ +package com.cf.imes.module.executor.controller.admin.plate.vo; + +import com.cf.imes.module.executor.controller.admin.plan.dto.*; +import com.cf.imes.module.executor.controller.admin.plan.vo.PlanOptimizeDataDTO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.List; + +/** + * @author Beal + */ +@Data +public class PlateDetailVO { + + @Schema(description = "生产单id") + private Long orderId; + + @Schema(description = "点详情列表") + private List pointDetailList; + + @Schema(description = "孔详情列表") + private List holeDetailList; + + @Schema(description = "模型详情列表") + private List modelDetailList; + + @Schema(description = "偏移量") + private OffSet offSet; + + @Schema(description = "是否新版本") + private Boolean newVersion; + + @Schema(description = "org点详情列表") + private List orgPointDetailList; + + @Schema(description = "开料尺寸") + private KaiLiaoSize kaiLiaoSize; + + @Schema(description = "边模型详情列表") + private List sideModelDetails; + + @Schema(description = "边孔详情") + private List sideHoleDetailList; + +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/PlateRespVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/PlateRespVO.java index a9d64c478..dac60e0ed 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/PlateRespVO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/PlateRespVO.java @@ -9,6 +9,9 @@ import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; import com.alibaba.excel.annotation.*; +/** + * @author Beal + */ @Schema(description = "管理后台 - 生产单板件 Response VO") @Data @ExcelIgnoreUnannotated @@ -158,4 +161,8 @@ public class PlateRespVO { @ExcelProperty("创建时间") private LocalDateTime createTime; + @Schema(description = "小板详情列表") + private List plateDetailList; + + } \ No newline at end of file diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/RandomUtils.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/RandomUtils.java new file mode 100644 index 000000000..0968fcb99 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/RandomUtils.java @@ -0,0 +1,137 @@ +package com.cf.imes.module.executor.util; + +import cn.hutool.core.date.LocalDateTimeUtil; +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.RandomUtil; +import cn.hutool.core.util.StrUtil; +import com.cf.imes.framework.common.enums.CommonStatusEnum; +import uk.co.jemos.podam.api.PodamFactory; +import uk.co.jemos.podam.api.PodamFactoryImpl; + +import java.lang.reflect.Type; +import java.time.LocalDateTime; +import java.util.Arrays; +import java.util.Date; +import java.util.List; +import java.util.Set; +import java.util.function.Consumer; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +/** + * 随机工具类 + * + * @author 晨丰科技 + */ +public class RandomUtils { + + private static final int RANDOM_STRING_LENGTH = 10; + + private static final int TINYINT_MAX = 127; + + private static final int RANDOM_DATE_MAX = 30; + + private static final int RANDOM_COLLECTION_LENGTH = 5; + + private static final PodamFactory PODAM_FACTORY = new PodamFactoryImpl(); + + static { + // 字符串 + PODAM_FACTORY.getStrategy().addOrReplaceTypeManufacturer(String.class, + (dataProviderStrategy, attributeMetadata, map) -> randomString()); + // Integer + PODAM_FACTORY.getStrategy().addOrReplaceTypeManufacturer(Integer.class, (dataProviderStrategy, attributeMetadata, map) -> { + // 如果是 status 的字段,返回 0 或 1 + if ("status".equals(attributeMetadata.getAttributeName())) { + return RandomUtil.randomEle(CommonStatusEnum.values()).getStatus(); + } + // 如果是 type、status 结尾的字段,返回 tinyint 范围 + if (StrUtil.endWithAnyIgnoreCase(attributeMetadata.getAttributeName(), + "type", "status", "category", "scope", "result")) { + return RandomUtil.randomInt(0, TINYINT_MAX + 1); + } + return RandomUtil.randomInt(); + }); + // LocalDateTime + PODAM_FACTORY.getStrategy().addOrReplaceTypeManufacturer(LocalDateTime.class, + (dataProviderStrategy, attributeMetadata, map) -> randomLocalDateTime()); + // Boolean + PODAM_FACTORY.getStrategy().addOrReplaceTypeManufacturer(Boolean.class, (dataProviderStrategy, attributeMetadata, map) -> { + // 如果是 deleted 的字段,返回非删除 + if ("deleted".equals(attributeMetadata.getAttributeName())) { + return false; + } + return RandomUtil.randomBoolean(); + }); + } + + public static String randomString() { + return RandomUtil.randomString(RANDOM_STRING_LENGTH); + } + + public static Long randomLongId() { + return RandomUtil.randomLong(0, Long.MAX_VALUE); + } + + public static Integer randomInteger() { + return RandomUtil.randomInt(0, Integer.MAX_VALUE); + } + + public static Date randomDate() { + return RandomUtil.randomDay(0, RANDOM_DATE_MAX); + } + + public static LocalDateTime randomLocalDateTime() { + // 设置 Nano 为零的原因,避免 MySQL、H2 存储不到时间戳 + return LocalDateTimeUtil.of(randomDate()).withNano(0); + } + + public static Short randomShort() { + return (short) RandomUtil.randomInt(0, Short.MAX_VALUE); + } + + public static Set randomSet(Class clazz) { + return Stream.iterate(0, i -> i).limit(RandomUtil.randomInt(1, RANDOM_COLLECTION_LENGTH)) + .map(i -> randomPojo(clazz)).collect(Collectors.toSet()); + } + + public static Integer randomCommonStatus() { + return RandomUtil.randomEle(CommonStatusEnum.values()).getStatus(); + } + + public static String randomEmail() { + return randomString() + "@qq.com"; + } + + public static String randomURL() { + return "https://www.cf.com/" + randomString(); + } + + @SafeVarargs + public static T randomPojo(Class clazz, Consumer... consumers) { + T pojo = PODAM_FACTORY.manufacturePojo(clazz); + // 非空时,回调逻辑。通过它,可以实现 Pojo 的进一步处理 + if (ArrayUtil.isNotEmpty(consumers)) { + Arrays.stream(consumers).forEach(consumer -> consumer.accept(pojo)); + } + return pojo; + } + + @SafeVarargs + public static T randomPojo(Class clazz, Type type, Consumer... consumers) { + T pojo = PODAM_FACTORY.manufacturePojo(clazz, type); + // 非空时,回调逻辑。通过它,可以实现 Pojo 的进一步处理 + if (ArrayUtil.isNotEmpty(consumers)) { + Arrays.stream(consumers).forEach(consumer -> consumer.accept(pojo)); + } + return pojo; + } + + @SafeVarargs + public static List randomPojoList(Class clazz, Consumer... consumers) { + int size = RandomUtil.randomInt(1, RANDOM_COLLECTION_LENGTH); + return Stream.iterate(0, i -> i).limit(size).map(o -> randomPojo(clazz, consumers)) + .collect(Collectors.toList()); + } + +}