From ad939592f97bf41e5a12a190097e854d4399dd26 Mon Sep 17 00:00:00 2001 From: yangsb Date: Mon, 11 Mar 2024 13:50:01 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=8E=92=E5=8D=95?= =?UTF-8?q?=E6=9D=BF=E6=9D=90=E5=88=97=E8=A1=A8=E6=B7=BB=E5=8A=A0=E5=BF=85?= =?UTF-8?q?=E8=A6=81=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/plan/OptimizePlanController.java | 36 ++++ .../controller/admin/plan/PlanController.java | 17 +- .../admin/plan/vo/GetPlateByPlanIdVO.java | 43 +++++ .../admin/plan/vo/PlateOptimize.java | 44 +++++ .../remainplaten/RemainPlateDO.java | 96 +++++++++++ .../executor/dal/mysql/plan/PlanMapper.java | 1 + .../executor/dal/mysql/plate/PlateMapper.java | 3 +- .../optimizeplan/OptimizePlanService.java | 9 + .../optimizeplan/OptimizePlanServiceImpl.java | 23 +++ .../executor/service/plan/PlanService.java | 2 +- .../service/plan/PlanServiceImpl.java | 30 +++- .../imes/module/executor/util/ZLibUtils.java | 156 ++++++++++++++++++ .../main/resources/mapper/plan/PlanMapper.xml | 21 +++ .../resources/mapper/plate/PlateMapper.xml | 7 +- .../service/goods/GoodsServiceImplTest.java | 4 +- .../executor/service/zlib/ZlibTest.java | 108 ++++++++++++ 16 files changed, 587 insertions(+), 13 deletions(-) create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/OptimizePlanController.java create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/GetPlateByPlanIdVO.java create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/PlateOptimize.java create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/remainplaten/RemainPlateDO.java create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanService.java create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/ZLibUtils.java create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/test/java/com/cf/imes/module/executor/service/zlib/ZlibTest.java 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 new file mode 100644 index 000000000..1fbae2fc0 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/OptimizePlanController.java @@ -0,0 +1,36 @@ +package com.cf.imes.module.executor.controller.admin.plan; + +import com.cf.imes.framework.common.pojo.CommonResult; +import com.cf.imes.module.executor.controller.admin.plan.vo.PlateOptimize; +import com.cf.imes.module.executor.service.optimizeplan.OptimizePlanService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +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 java.util.List; + +/** + * @author there + */ +@RestController +@RequestMapping("/executor/optimize-plan") +@Tag(name= "优化排单") +public class OptimizePlanController { + + @Resource + private OptimizePlanService optimizePlanService; + + @GetMapping("/getPlateListByPlanId") + @Operation(summary = "根据排单id获取板材列表") + @PreAuthorize("@ss.hasPermission('executor:optimize-plate:create')") + public CommonResult> getPlateListByPlanId(@Schema(description = "排单id") @RequestParam("planId") Long planId) { + return CommonResult.success(optimizePlanService.getPlateListByPlanId(planId)); + } + +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/PlanController.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/PlanController.java index 21e9e9666..378095c95 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/PlanController.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/PlanController.java @@ -82,8 +82,8 @@ public class PlanController { @Operation(summary = "根据排单id获取板材列表") @Parameter(name = "id", description = "排单id", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('executor:plan:query')") - public CommonResult> getPlateByPlanId(@RequestParam("id") Long id) { - return success(planService.getPlateByPlanId(id)); + public CommonResult> getPlateByPlanId(@Valid GetPlateByPlanIdVO vo) { + return success(planService.getPlateByPlanId(vo)); } @GetMapping("/page") @@ -129,4 +129,17 @@ public class PlanController { BeanUtils.toBean(list, PlanRespVO.class)); } + @GetMapping("/export-plate-excel") + @Operation(summary = "导出板材 Excel") + @PreAuthorize("@ss.hasPermission('executor:plan:export')") + @OperateLog(type = EXPORT) + public void exportPlateExcel(@Valid PlanPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = planService.getPlanPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "排单.xls", "数据", PlanRespVO.class, + BeanUtils.toBean(list, PlanRespVO.class)); + } + } \ 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/controller/admin/plan/vo/GetPlateByPlanIdVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/GetPlateByPlanIdVO.java new file mode 100644 index 000000000..3e93de5a3 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/GetPlateByPlanIdVO.java @@ -0,0 +1,43 @@ +package com.cf.imes.module.executor.controller.admin.plan.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotNull; +import java.math.BigDecimal; +import java.util.Date; + +import static com.cf.imes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Data +public class GetPlateByPlanIdVO { + @Schema(description = "排单id") + @NotNull(message = "排单id不能空") + private Long palnId; + @Schema(description = "矩形") + private boolean rectangle; + @Schema(description = "异形") + private boolean specialShaped; + @Schema(description = "造型") + private boolean sculpt; + @Schema(description = "有挖穿造型") + private boolean holeThrough; + @Schema(description = "有挖穿孔") + private boolean burrow; + @Schema(description = "有二维纹路") + private boolean twoDimensionalToolPath; + @Schema(description = "开始时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private Date beginDate; + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private Date endDate; + @Schema(description = "长 小范围") + private BigDecimal longMinRang; + @Schema(description = "长 大范围") + private BigDecimal longMaxRang; + @Schema(description = "宽 小范围") + private BigDecimal widthMinRang; + @Schema(description = "宽 大范围") + private BigDecimal widthMaxRang; +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/PlateOptimize.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/PlateOptimize.java new file mode 100644 index 000000000..de41205b5 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/PlateOptimize.java @@ -0,0 +1,44 @@ +package com.cf.imes.module.executor.controller.admin.plan.vo; + +import com.cf.imes.module.executor.dal.dataobject.remainplaten.RemainPlateDO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.util.List; + +/** + * @author there + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class PlateOptimize { + @Schema(description = "是否已排") + private Boolean isPlan; + @Schema(description = "商品名称") + private String goodsName; + @Schema(description = "商品材质") + private String material; + @Schema(description = "商品颜色") + private String color; + @Schema(description = "宽") + private BigDecimal width; + @Schema(description = "高") + private BigDecimal height; + @Schema(description = "厚") + private BigDecimal thickness; + @Schema(description = "小板数量") + private Integer plateNum; + @Schema(description = "有纹路") + private Boolean hasLines; + + @Schema(description = "余料板列表") + private List plateDOList; + + +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/remainplaten/RemainPlateDO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/remainplaten/RemainPlateDO.java new file mode 100644 index 000000000..c7bbf87dc --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/remainplaten/RemainPlateDO.java @@ -0,0 +1,96 @@ +package com.cf.imes.module.executor.dal.dataobject.remainplaten; + +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.*; + +import java.math.BigDecimal; + +/** + * 生产单余料板表 order_remain_plate_{N} DO + * + * @author 晨丰科技 + */ +@TableName("order_remain_plate") +@KeySequence("order_remain_plate_n_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class RemainPlateDO extends BaseDO { + + /** + * 余料板 ID + */ + @TableId + private Long id; + /** + * 排单 ID + */ + private Long planId; + /** + * 初始排单 ID + */ + private Long initPlanId; + /** + * 余料板状态,0未使用,1使用中,2已使用 + */ + private Integer status; + /** + * 商品 ID + */ + private String goodsId; + /** + * 商品名 + */ + private String name; + /** + * 材料 + */ + private String material; + /** + * 颜色 + */ + private String color; + /** + * 宽度 + */ + private BigDecimal width; + /** + * 长度 + */ + private BigDecimal length; + /** + * 厚度 + */ + private BigDecimal thickness; + /** + * 品牌 + */ + private String brand; + /** + * 放置样式,0正面,1正面右转,2正面后转,3正面左转,4反面,5反面右转,6反面后转,7反面左转 + */ + private Integer placeStyle; + /** + * 仓库名 + */ + private String store; + /** + * 数量 + */ + private Integer count; + /** + * 备注 + */ + private String remark; + /** + * 轮廊数据,Json 串 + */ + private String outline; + +} \ 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/dal/mysql/plan/PlanMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/plan/PlanMapper.java index d2d1b6f42..171bbb61a 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/plan/PlanMapper.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/plan/PlanMapper.java @@ -34,4 +34,5 @@ public interface PlanMapper extends BaseMapperX { .orderByDesc(PlanDO::getId)); } + List selectPlateListByPlanId(Long planId); } \ 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/dal/mysql/plate/PlateMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/plate/PlateMapper.java index b489f289c..2d2a41097 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/plate/PlateMapper.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/plate/PlateMapper.java @@ -10,6 +10,7 @@ import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX; import com.cf.imes.module.executor.controller.admin.plan.vo.PlatePage; import com.cf.imes.module.executor.controller.admin.plan.vo.PlateResList; +import com.cf.imes.module.executor.dal.dataobject.order.OrderDO; import com.cf.imes.module.executor.dal.dataobject.plate.PlateDO; import org.apache.ibatis.annotations.Mapper; import com.cf.imes.module.executor.controller.admin.plate.vo.*; @@ -63,5 +64,5 @@ public interface PlateMapper extends BaseMapperX { IPage selectPlatePage(@Param("page") IPage page, @Param("orderId")Long organId, @Param("goodsId") String goodsId); - List selectPlateByPlanId(Long id); + List selectPlateByPlanId(@Param(Constants.WRAPPER) Wrapper wrapper); } \ 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/service/optimizeplan/OptimizePlanService.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanService.java new file mode 100644 index 000000000..3d15ba2c5 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanService.java @@ -0,0 +1,9 @@ +package com.cf.imes.module.executor.service.optimizeplan; + +import com.cf.imes.module.executor.controller.admin.plan.vo.PlateOptimize; + +import java.util.List; + +public interface OptimizePlanService { + List getPlateListByPlanId(Long planId); +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java new file mode 100644 index 000000000..01ccc83d0 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java @@ -0,0 +1,23 @@ +package com.cf.imes.module.executor.service.optimizeplan; + +import com.cf.imes.module.executor.controller.admin.plan.vo.PlateOptimize; +import com.cf.imes.module.executor.dal.mysql.plan.PlanMapper; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @author there + */ +@Service +public class OptimizePlanServiceImpl implements OptimizePlanService{ + + @Resource + private PlanMapper planMapper; + + @Override + public List getPlateListByPlanId(Long planId) { + return planMapper.selectPlateListByPlanId(planId); + } +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanService.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanService.java index 562fc4c01..1ab45f9dc 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanService.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanService.java @@ -60,5 +60,5 @@ public interface PlanService { Boolean cancellation(Long id); - List getPlateByPlanId(Long id); + List getPlateByPlanId(GetPlateByPlanIdVO vo); } \ 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/service/plan/PlanServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java index 2088840fd..9a519b961 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java @@ -314,17 +314,37 @@ public class PlanServiceImpl implements PlanService { } @Override - public List getPlateByPlanId(Long id) { - validatePlanExists(id); - List list = plateMapper.selectPlateByPlanId(id); + public List getPlateByPlanId(GetPlateByPlanIdVO vo) { + validatePlanExists(vo.getPalnId()); + QueryWrapperX queryWrapperX = new QueryWrapperX<>(); + List filterTypes = new ArrayList<>(); + if (vo.isHoleThrough()) { + filterTypes.add(1); + } + if (vo.isBurrow()) { + filterTypes.add(2); + } + if (vo.isTwoDimensionalToolPath()) { + filterTypes.add(4); + } + queryWrapperX.betweenIfPresent("a.width", new BigDecimal[]{vo.getWidthMinRang(), vo.getWidthMaxRang()}) + .betweenIfPresent("a.height", new BigDecimal[]{vo.getLongMinRang(), vo.getLongMaxRang()}) + .inIfPresent("c.filter_type", filterTypes) + .betweenIfPresent("f.delivery_date", new Date[]{vo.getBeginDate(), vo.getEndDate()}) + .inIfPresent("a.filter_type", filterTypes) + .eq("a.id", vo.getPalnId()) + ; + + + List list = plateMapper.selectPlateByPlanId(queryWrapperX); Set bodyIds = list.stream().map(e -> e.getBodyId()).collect(Collectors.toSet()); Set roomIds = list.stream().map(e -> e.getRoomId()).collect(Collectors.toSet()); List moduleDOS = moduleMapper.selectList(new LambdaQueryWrapperX().in(ModuleDO::getId, bodyIds).eq(ModuleDO::getType, 2) .or().in(ModuleDO::getId, roomIds).eq(ModuleDO::getType, 1) ); for (PlateResList resList : list) { - resList.setBodyName(moduleDOS.stream().filter(e->Objects.equals(e.getId(), resList.getBodyId())).map(e->e.getName()).findAny().orElse(null)); - resList.setRoomName(moduleDOS.stream().filter(e->Objects.equals(e.getId(), resList.getRoomId())).map(e->e.getName()).findAny().orElse(null)); + resList.setBodyName(moduleDOS.stream().filter(e -> Objects.equals(e.getId(), resList.getBodyId())).map(e -> e.getName()).findAny().orElse(null)); + resList.setRoomName(moduleDOS.stream().filter(e -> Objects.equals(e.getId(), resList.getRoomId())).map(e -> e.getName()).findAny().orElse(null)); } return list; } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/ZLibUtils.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/ZLibUtils.java new file mode 100644 index 000000000..a47254e05 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/util/ZLibUtils.java @@ -0,0 +1,156 @@ +package com.cf.imes.module.executor.util; + +import java.io.*; +import java.util.zip.Deflater; +import java.util.zip.DeflaterOutputStream; +import java.util.zip.Inflater; +import java.util.zip.InflaterInputStream; + + + +//ZLib压缩工具 +public class ZLibUtils { + + //压缩直接数组 + public static byte[] compress(byte[] data) { + byte[] output = new byte[0]; + + Deflater compresser = new Deflater(); + + compresser.reset(); + compresser.setInput(data); + compresser.finish(); + ByteArrayOutputStream bos = new ByteArrayOutputStream(data.length); + try { + byte[] buf = new byte[1024]; + while (!compresser.finished()) { + int i = compresser.deflate(buf); + bos.write(buf, 0, i); + } + output = bos.toByteArray(); + } catch (Exception e) { + output = data; + e.printStackTrace(); + } finally { + try { + bos.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + compresser.end(); + return output; + } + + //压缩 字节数组到输出流 + public static void compress(byte[] data, OutputStream os) { + DeflaterOutputStream dos = new DeflaterOutputStream(os); + + try { + dos.write(data, 0, data.length); + + dos.finish(); + + dos.flush(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + //解压缩 字节数组 + public static byte[] decompress(byte[] data) { + byte[] output = new byte[0]; + + Inflater decompresser = new Inflater(); + decompresser.reset(); + decompresser.setInput(data); + + ByteArrayOutputStream o = new ByteArrayOutputStream(data.length); + try { + byte[] buf = new byte[1024]; + while (!decompresser.finished()) { + int i = decompresser.inflate(buf); + o.write(buf, 0, i); + } + output = o.toByteArray(); + } catch (Exception e) { + output = data; + e.printStackTrace(); + } finally { + try { + o.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + decompresser.end(); + return output; + } + + //解压缩 输入流 到字节数组 + public static byte[] decompress(InputStream is) { + InflaterInputStream iis = new InflaterInputStream(is); + ByteArrayOutputStream o = new ByteArrayOutputStream(1024); + try { + int i = 1024; + byte[] buf = new byte[i]; + + while ((i = iis.read(buf, 0, i)) > 0) { + o.write(buf, 0, i); + } + + } catch (IOException e) { + e.printStackTrace(); + } + return o.toByteArray(); + } + + public static void main(String[] args) + { + //测试字节数组 + System.err.println("字节压缩/解压缩测试"); + String inputStr = "snowolf@zlex.org;dongliang@zlex.org;zlex.dongliang@zlex.org"; + System.err.println("输入字符串:\t" + inputStr); + byte[] input = inputStr.getBytes(); + System.err.println("输入字节长度:\t" + input.length); + + byte[] data = ZLibUtils.compress(input); + System.err.println("压缩后字节长度:\t" + data.length); + + byte[] output = ZLibUtils.decompress(data); + System.err.println("解压缩后字节长度:\t" + output.length); + String outputStr = new String(output); + System.err.println("输出字符串:\t" + outputStr); + + //测试文件 + String filename = "zlib"; + File file = new File(filename); + System.err.println("文件压缩/解压缩测试"); + try { + + FileOutputStream fos = new FileOutputStream(file); + ZLibUtils.compress(input, fos); + fos.close(); + System.err.println("压缩后字节长度:\t" + file.length()); + } catch (Exception e) { + System.err.println("错误:\t" + e.getMessage()); + } + + try { + FileInputStream fis = new FileInputStream(file); + output = ZLibUtils.decompress(fis); + fis.close(); + + } catch (Exception e) { + System.err.println("错误:\t" + e.getMessage()); + } + System.err.println("解压缩后字节长度:\t" + output.length); + outputStr = new String(output); + System.err.println("输出字符串:\t" + outputStr); + } + +} + + + diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plan/PlanMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plan/PlanMapper.xml index 7476ac020..9f8bf6c24 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plan/PlanMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plan/PlanMapper.xml @@ -9,4 +9,25 @@ 文档可见:https://www.cf.com/MyBatis/x-plugins/ --> + + + + + + + + + + + \ No newline at end of file diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/PlateMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/PlateMapper.xml index d013fb662..0ff8688dc 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/PlateMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/PlateMapper.xml @@ -22,11 +22,14 @@ \ No newline at end of file diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/test/java/com/cf/imes/module/executor/service/goods/GoodsServiceImplTest.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/test/java/com/cf/imes/module/executor/service/goods/GoodsServiceImplTest.java index 8eeb64968..9f536a6b3 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/test/java/com/cf/imes/module/executor/service/goods/GoodsServiceImplTest.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/test/java/com/cf/imes/module/executor/service/goods/GoodsServiceImplTest.java @@ -108,7 +108,7 @@ public class GoodsServiceImplTest extends BaseDbUnitTest { @Test @Disabled // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解 public void testGetGoodsPage() { - // mock 数据 + /* // mock 数据 GoodsDO dbGoods = randomPojo(GoodsDO.class, o -> { // 等会查询到 o.setOrderNo(null); o.setGoodsId(null); @@ -172,7 +172,7 @@ public class GoodsServiceImplTest extends BaseDbUnitTest { // 断言 assertEquals(1, pageResult.getTotal()); assertEquals(1, pageResult.getList().size()); - assertPojoEquals(dbGoods, pageResult.getList().get(0)); + assertPojoEquals(dbGoods, pageResult.getList().get(0));*/ } } \ No newline at end of file diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/test/java/com/cf/imes/module/executor/service/zlib/ZlibTest.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/test/java/com/cf/imes/module/executor/service/zlib/ZlibTest.java new file mode 100644 index 000000000..f4bad2238 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/test/java/com/cf/imes/module/executor/service/zlib/ZlibTest.java @@ -0,0 +1,108 @@ +package com.cf.imes.module.executor.service.zlib; + +import com.alibaba.druid.pool.DruidDataSource; +import com.alibaba.nacos.shaded.io.grpc.netty.shaded.io.netty.handler.codec.compression.JdkZlibDecoder; +import com.alibaba.nacos.shaded.io.grpc.netty.shaded.io.netty.handler.codec.compression.ZlibDecoder; +import com.cf.imes.module.executor.util.ZLibUtils; +import lombok.Data; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.springframework.jdbc.core.BeanPropertyRowMapper; +import org.springframework.jdbc.core.JdbcTemplate; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.sql.PreparedStatement; +import java.util.Base64; +import java.util.List; +import java.util.Objects; +import java.util.zip.Inflater; + +public class ZlibTest { + + private JdbcTemplate jdbcTemplate; + + @BeforeEach + public void init() { + DruidDataSource druidDataSource = new DruidDataSource(); + druidDataSource.setDriverClassName("com.mysql.cj.jdbc.Driver"); + druidDataSource.setUrl("jdbc:mysql://192.168.1.245:3306/cferp_test_1"); + druidDataSource.setUsername("mes_visitor"); + druidDataSource.setPassword("cf123456"); + //创建jdbc模板对象 + JdbcTemplate jdbcTemplate = new JdbcTemplate(); + jdbcTemplate.setDataSource(druidDataSource); + this.jdbcTemplate = jdbcTemplate; + } + + @Test + void get() throws UnsupportedEncodingException { + /*String source = "xxxxxxxxx"; + byte[] compress = ZLibUtils.compress(source.getBytes()); + System.out.println(compress.length);*/ + List list = jdbcTemplate.query("select * from order_box_block limit 10", new BeanPropertyRowMapper(Bean.class)); + for (Bean bean : list) { + if (!Objects.isNull(bean.Data)) { + System.out.println(new String(ZLibUtils.decompress(new ByteArrayInputStream(Base64.getDecoder().decode(bean.Data))), "utf-8")); + System.err.println("------------------------------------------"); + } + } + } + + @Test + void test() { + String source = "xxxxxxxxxxaassad"; + //压缩 + byte[] compress = ZLibUtils.compress(source.getBytes()); + String str = new String(compress); + System.out.println(str); + //解压 + System.out.println(new String(ZLibUtils.decompress(new ByteArrayInputStream(compress)))); + + + } + + public void insertByteArray(String tableName, byte[] data, String columnName) { + final String sql = "INSERT INTO " + tableName + " (" + columnName + ") VALUES (?)"; + jdbcTemplate.update( + conn -> { + PreparedStatement ps = conn.prepareStatement(sql); + ps.setBinaryStream(1, new ByteArrayInputStream(data), data.length); + return ps; + } + ); + } + + + public static String uncompress(byte[] input) throws IOException { + Inflater inflater = new Inflater(); + inflater.setInput(input); + ByteArrayOutputStream baos = new ByteArrayOutputStream(input.length); + try { + byte[] buff = new byte[1024]; + while (!inflater.finished()) { + int count = inflater.inflate(buff); + baos.write(buff, 0, count); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + baos.close(); + } + inflater.end(); + byte[] output = baos.toByteArray(); + return new String(output, "UTF-8"); + } + + + @Data + public static class Bean { + long BoxID; + long ShardKey; + long OrderNo; + byte[] Data; + long CompanyID; + } +} From d5eab9650cd03fdb637364a0cea2b126e5ba490b Mon Sep 17 00:00:00 2001 From: yangsb Date: Mon, 11 Mar 2024 17:10:24 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E4=BD=99=E6=96=99=E6=9D=BF=E3=80=81=E6=8F=90=E4=BA=A4=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E4=BC=98=E5=8C=96=E7=BB=93=E6=9E=9C=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E3=80=81=E5=BC=80=E5=A7=8B=E5=BC=80=E6=96=99=20=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../imes/module/infra/api/file/FileApi.java | 7 + .../infra/enums/ErrorCodeConstants.java | 1 + .../module/infra/api/file/FileApiImpl.java | 5 + .../infra/service/file/FileService.java | 6 + .../infra/service/file/FileServiceImpl.java | 25 + .../admin/plan/OptimizePlanController.java | 33 +- .../controller/admin/plan/PlanController.java | 9 +- .../admin/plan/vo/AddRemainReqVO.java | 42 + .../admin/plan/vo/PlateOptimize.java | 2 + .../admin/plan/vo/SavePlanPlateResult.java | 24 + .../executor/dal/dataobject/plan/PlanDO.java | 9 +- .../mysql/remainplaten/RemainPlateMapper.java | 10 + .../executor/dal/mysql/remainplaten/ss.json | 3626 +++++++++++++++++ .../rpc/config/RpcConfiguration.java | 3 +- .../optimizeplan/OptimizePlanService.java | 8 + .../optimizeplan/OptimizePlanServiceImpl.java | 92 +- .../main/resources/mapper/plan/PlanMapper.xml | 4 +- .../executor/service/zlib/ZlibTest.java | 45 +- 18 files changed, 3930 insertions(+), 21 deletions(-) create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/AddRemainReqVO.java create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/SavePlanPlateResult.java create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/remainplaten/RemainPlateMapper.java create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/remainplaten/ss.json diff --git a/cf-module-infra/cf-module-infra-api/src/main/java/com/cf/imes/module/infra/api/file/FileApi.java b/cf-module-infra/cf-module-infra-api/src/main/java/com/cf/imes/module/infra/api/file/FileApi.java index d23b2b17a..1d5618534 100644 --- a/cf-module-infra/cf-module-infra-api/src/main/java/com/cf/imes/module/infra/api/file/FileApi.java +++ b/cf-module-infra/cf-module-infra-api/src/main/java/com/cf/imes/module/infra/api/file/FileApi.java @@ -3,9 +3,11 @@ package com.cf.imes.module.infra.api.file; import com.cf.imes.framework.common.pojo.CommonResult; import com.cf.imes.module.infra.api.file.dto.FileCreateReqDTO; import com.cf.imes.module.infra.enums.ApiConstants; +import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Operation; import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; @@ -57,4 +59,9 @@ public interface FileApi { @Operation(summary = "保存文件,并返回文件的访问路径") CommonResult createFile(@Valid @RequestBody FileCreateReqDTO createReqDTO); + @DeleteMapping(PREFIX + "/deleteFileByPath") + @Operation(summary = "根据文件地址删除文件") + @Parameter(name = "path", description = "文件地址", example = "url", required = true) + CommonResult deleteFileByPath(String path); + } diff --git a/cf-module-infra/cf-module-infra-api/src/main/java/com/cf/imes/module/infra/enums/ErrorCodeConstants.java b/cf-module-infra/cf-module-infra-api/src/main/java/com/cf/imes/module/infra/enums/ErrorCodeConstants.java index f9eab6440..de3c95245 100644 --- a/cf-module-infra/cf-module-infra-api/src/main/java/com/cf/imes/module/infra/enums/ErrorCodeConstants.java +++ b/cf-module-infra/cf-module-infra-api/src/main/java/com/cf/imes/module/infra/enums/ErrorCodeConstants.java @@ -31,6 +31,7 @@ public interface ErrorCodeConstants { ErrorCode FILE_PATH_EXISTS = new ErrorCode(1_001_003_000, "文件路径已存在"); ErrorCode FILE_NOT_EXISTS = new ErrorCode(1_001_003_001, "文件不存在"); ErrorCode FILE_IS_EMPTY = new ErrorCode(1_001_003_002, "文件为空"); + ErrorCode FILE_REMOVE_FAIL = new ErrorCode(1_001_003_003, "文件删除失败"); // ========== 代码生成器 1-001-004-000 ========== ErrorCode CODEGEN_TABLE_EXISTS = new ErrorCode(1_003_001_000, "表定义已经存在"); diff --git a/cf-module-infra/cf-module-infra-biz/src/main/java/com/cf/imes/module/infra/api/file/FileApiImpl.java b/cf-module-infra/cf-module-infra-biz/src/main/java/com/cf/imes/module/infra/api/file/FileApiImpl.java index f64ad4164..7f0368e8a 100644 --- a/cf-module-infra/cf-module-infra-biz/src/main/java/com/cf/imes/module/infra/api/file/FileApiImpl.java +++ b/cf-module-infra/cf-module-infra-biz/src/main/java/com/cf/imes/module/infra/api/file/FileApiImpl.java @@ -23,4 +23,9 @@ public class FileApiImpl implements FileApi { createReqDTO.getContent())); } + @Override + public CommonResult deleteFileByPath(String path) { + return success(fileService.deleteFileByPath(path)); + } + } diff --git a/cf-module-infra/cf-module-infra-biz/src/main/java/com/cf/imes/module/infra/service/file/FileService.java b/cf-module-infra/cf-module-infra-biz/src/main/java/com/cf/imes/module/infra/service/file/FileService.java index 369d2f216..22403e3d2 100644 --- a/cf-module-infra/cf-module-infra-biz/src/main/java/com/cf/imes/module/infra/service/file/FileService.java +++ b/cf-module-infra/cf-module-infra-biz/src/main/java/com/cf/imes/module/infra/service/file/FileService.java @@ -45,4 +45,10 @@ public interface FileService { */ byte[] getFileContent(Long configId, String path) throws Exception; + /** + * 删除文件 + * @param path 文件地址 + * @return + */ + Boolean deleteFileByPath(String path); } diff --git a/cf-module-infra/cf-module-infra-biz/src/main/java/com/cf/imes/module/infra/service/file/FileServiceImpl.java b/cf-module-infra/cf-module-infra-biz/src/main/java/com/cf/imes/module/infra/service/file/FileServiceImpl.java index 86c07eac6..2ab44c357 100644 --- a/cf-module-infra/cf-module-infra-biz/src/main/java/com/cf/imes/module/infra/service/file/FileServiceImpl.java +++ b/cf-module-infra/cf-module-infra-biz/src/main/java/com/cf/imes/module/infra/service/file/FileServiceImpl.java @@ -6,6 +6,7 @@ import com.cf.imes.framework.common.pojo.PageResult; import com.cf.imes.framework.common.util.io.FileUtils; import com.cf.imes.framework.file.core.client.FileClient; import com.cf.imes.framework.file.core.utils.FileTypeUtils; +import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX; import com.cf.imes.module.infra.controller.admin.file.vo.file.FilePageReqVO; import com.cf.imes.module.infra.dal.dataobject.file.FileDO; import com.cf.imes.module.infra.dal.mysql.file.FileMapper; @@ -14,8 +15,11 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.Objects; + import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.cf.imes.module.infra.enums.ErrorCodeConstants.FILE_NOT_EXISTS; +import static com.cf.imes.module.infra.enums.ErrorCodeConstants.FILE_REMOVE_FAIL; /** * 文件 Service 实现类 @@ -95,4 +99,25 @@ public class FileServiceImpl implements FileService { return client.getContent(path); } + @Override + public Boolean deleteFileByPath(String path) { + // 校验存在 + FileDO fileDO = fileMapper.selectOne(new LambdaQueryWrapperX().eq(FileDO::getPath, path)); + if(Objects.isNull(fileDO)) { + throw exception(FILE_NOT_EXISTS); + } + // 从文件存储器中删除 + FileClient client = fileConfigService.getFileClient(fileDO.getConfigId()); + Assert.notNull(client, "客户端({}) 不能为空", fileDO.getConfigId()); + try { + client.delete(path); + } catch (Exception e) { + throw exception(FILE_REMOVE_FAIL); + } + + // 删除记录 + fileMapper.deleteById(fileDO.getId()); + return Boolean.TRUE; + } + } 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 1fbae2fc0..38befdf72 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,18 +1,20 @@ package com.cf.imes.module.executor.controller.admin.plan; import com.cf.imes.framework.common.pojo.CommonResult; +import com.cf.imes.module.executor.controller.admin.plan.vo.AddRemainReqVO; import com.cf.imes.module.executor.controller.admin.plan.vo.PlateOptimize; +import com.cf.imes.module.executor.controller.admin.plan.vo.SavePlanPlateResult; import com.cf.imes.module.executor.service.optimizeplan.OptimizePlanService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.security.access.prepost.PreAuthorize; -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 org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import javax.validation.Valid; +import javax.validation.constraints.NotNull; import java.util.List; /** @@ -21,6 +23,7 @@ import java.util.List; @RestController @RequestMapping("/executor/optimize-plan") @Tag(name= "优化排单") +@Validated public class OptimizePlanController { @Resource @@ -33,4 +36,26 @@ public class OptimizePlanController { return CommonResult.success(optimizePlanService.getPlateListByPlanId(planId)); } + + @PostMapping("/addRemain") + @Operation(summary = "添加余料板") + @PreAuthorize("@ss.hasPermission('executor:optimize-plate:create')") + public CommonResult addRemain(@RequestBody @Valid AddRemainReqVO vo){ + return CommonResult.success(optimizePlanService.addRemain(vo)); + } + + @PostMapping("savePlanPlateResult") + @Operation(summary = "提交保存优化结果文件") + @PreAuthorize("@ss.hasPermission('executor:optimize-plate:create')") + public CommonResult savePlanPlateResult(SavePlanPlateResult result) { + return CommonResult.success(optimizePlanService.savePlanPlateResult(result)); + } + + @GetMapping("commit") + @Operation(summary = "开始开料") + @PreAuthorize("@ss.hasPermission('executor:optimize-plate:create')") + public CommonResult commit(@RequestParam @Valid @NotNull(message = "排单id不能空") Long planId) { + return CommonResult.success(optimizePlanService.commit(planId)); + } + } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/PlanController.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/PlanController.java index 378095c95..4c4d859ee 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/PlanController.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/PlanController.java @@ -133,13 +133,12 @@ public class PlanController { @Operation(summary = "导出板材 Excel") @PreAuthorize("@ss.hasPermission('executor:plan:export')") @OperateLog(type = EXPORT) - public void exportPlateExcel(@Valid PlanPageReqVO pageReqVO, + public void exportPlateExcel(@Valid GetPlateByPlanIdVO vo, HttpServletResponse response) throws IOException { - pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); - List list = planService.getPlanPage(pageReqVO).getList(); + List plateByPlanId = planService.getPlateByPlanId(vo); // 导出 Excel - ExcelUtils.write(response, "排单.xls", "数据", PlanRespVO.class, - BeanUtils.toBean(list, PlanRespVO.class)); + ExcelUtils.write(response, "排单板材.xls", "数据", PlateResList.class, + BeanUtils.toBean(plateByPlanId, PlateResList.class)); } } \ 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/controller/admin/plan/vo/AddRemainReqVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/AddRemainReqVO.java new file mode 100644 index 000000000..1e97030f8 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/AddRemainReqVO.java @@ -0,0 +1,42 @@ +package com.cf.imes.module.executor.controller.admin.plan.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.math.BigDecimal; + +/** + * @author Beal + */ +@Data +public class AddRemainReqVO { + + @Schema(description = "排单id") + private Long planId; + + @NotNull(message = "宽 不能空") + @Schema(description = "宽") + private BigDecimal width; + + @NotNull(message = "长 不能空") + @Schema(description = "长") + private BigDecimal length; + + @NotNull(message = "数量 不能空") + @Schema(description = "数量") + private Integer count; + + @Schema(description = "商品id") + private String goodsId; + + @Schema(description = "商品名称") + private String goodsName; + + @Schema(description = "材料") + private String material; + + @Schema(description = "颜色") + private String color; + +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/PlateOptimize.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/PlateOptimize.java index de41205b5..a11181645 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/PlateOptimize.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/PlateOptimize.java @@ -20,6 +20,8 @@ import java.util.List; public class PlateOptimize { @Schema(description = "是否已排") private Boolean isPlan; + @Schema(description = "商品id") + private String goodsId; @Schema(description = "商品名称") private String goodsName; @Schema(description = "商品材质") diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/SavePlanPlateResult.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/SavePlanPlateResult.java new file mode 100644 index 000000000..0cd9a266e --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/SavePlanPlateResult.java @@ -0,0 +1,24 @@ +package com.cf.imes.module.executor.controller.admin.plan.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springframework.web.multipart.MultipartFile; +import javax.validation.constraints.NotNull; + +/** + * @author Beal + */ +@Data +public class SavePlanPlateResult { + + @NotNull(message = "排单id") + @Schema(description = "排单id") + private Long planId; + + @NotNull(message = "文件附件不能为空") + private MultipartFile placeOrder; + + @NotNull(message = "文件附件不能为空") + private MultipartFile placeData; +} + diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/plan/PlanDO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/plan/PlanDO.java index 0b13344d4..9093bed1a 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/plan/PlanDO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/dataobject/plan/PlanDO.java @@ -61,7 +61,14 @@ public class PlanDO extends BaseDO { * 生产单号 */ private String orderNos; - + /** + * 排单优化文件地址 + */ + private String placeDateFileUrl; + /** + * 排单优化文件地址 + */ + private String placeOrderFileUrl; /** * 备注 */ diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/remainplaten/RemainPlateMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/remainplaten/RemainPlateMapper.java new file mode 100644 index 000000000..83be2922b --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/remainplaten/RemainPlateMapper.java @@ -0,0 +1,10 @@ +package com.cf.imes.module.executor.dal.mysql.remainplaten; + +import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX; +import com.cf.imes.module.executor.dal.dataobject.remainplaten.RemainPlateDO; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface RemainPlateMapper extends BaseMapperX { + +} diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/remainplaten/ss.json b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/remainplaten/ss.json new file mode 100644 index 000000000..d7faa2216 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/remainplaten/ss.json @@ -0,0 +1,3626 @@ +{ + "AreaID": 4686, + "AreaName": "开料机台", + "PlanOrder": { + "goodsIDList": null, + "ID": 134289, + "PlanCode": "PD240102002614", + "State": 0, + "MachineID": 4686, + "CreateTime": "2024-01-02T16:07:00", + "CreatorID": 658, + "PlanTime": "2024-01-02T16:07:00", + "ProduceTime": "0001-01-01T00:00:00", + "ProducerID": 0, + "Remark": "", + "IsPay": false, + "CompanyID": 1108, + "ModifyTime": "0001-01-01T00:00:00", + "PlanType": 1, + "OrderNos": "[20231124029547, 20231218029769]", + "BlockInfo": "多层板--暖白dfdfgsdg--18--2440*1220--2片--2.426;材料2--颜色2--18--2501*1221--1片--0.72", + "SaleOrderList": null, + "Deleted": false, + "Sort": 0 + }, + "MetrialList": [ + { + "OrderNo": "PD240102002614", + "GoodsID": 2595, + "GoodsName": "多层板>", + "Specification": "多层板", + "Metrial": "多层板", + "Color": "暖白dfdfgsdg", + "Brank": "多层板dfghdfgh", + "Width": 1215, + "Length": 2435, + "Thickness": 18, + "Border": 1, + "CutDia": 6, + "CutGap": 1, + "IsSorted": true, + "BoardCount": 1, + "MinBoardID": 1, + "MaxBoardID": 1, + "AvgLyr_All": 2.426, + "AvgLyr_NoLastOne": 2.426, + "Lyr_LastOne": 2.426, + "CompanyID": 0, + "UsedBoardMessage": "[{\"Bi\":1,\"W\":1215,\"L\":2435,\"Si\":0,\"So\":\"\",\"No\":\"\",\"RM\":\"\",\"LK\":false,\"scrapPts\":null,\"scrapBlocks\":[],\"LE\":false,\"RE\":false}]", + "BlockPlaceMessage": "[{\"zzInfo\":null,\"Bi\":1,\"Bo\":2311001625348,\"X\":603,\"Y\":1,\"Pi\":2,\"Ps\":4,\"Ci\":1,\"Ca\":0,\"CP\":3,\"iA\":true,\"iO\":false,\"Dh\":true,\"Dm\":true,\"OF\":0,\"type\":0,\"points\":[],\"OrgSizeOutOff\":{\"left\":0,\"right\":0,\"upper\":0,\"under\":0,\"width\":0,\"length\":0,\"outWidth\":0,\"outLength\":0,\"hasDone\":false},\"SizeOutOff\":{\"left\":3.5,\"right\":3.5,\"upper\":3.5,\"under\":3.5,\"width\":7,\"length\":7,\"outWidth\":0,\"outLength\":0,\"hasDone\":false},\"PlaceOffX\":3.5,\"PlaceOffY\":3.5},{\"zzInfo\":null,\"Bi\":1,\"Bo\":2311001625349,\"X\":1,\"Y\":1,\"Pi\":1,\"Ps\":4,\"Ci\":2,\"Ca\":0,\"CP\":2,\"iA\":true,\"iO\":false,\"Dh\":true,\"Dm\":true,\"OF\":0,\"type\":0,\"points\":[],\"OrgSizeOutOff\":{\"left\":0,\"right\":0,\"upper\":0,\"under\":0,\"width\":0,\"length\":0,\"outWidth\":0,\"outLength\":0,\"hasDone\":false},\"SizeOutOff\":{\"left\":3.5,\"right\":3.5,\"upper\":3.5,\"under\":3.5,\"width\":7,\"length\":7,\"outWidth\":0,\"outLength\":0,\"hasDone\":false},\"PlaceOffX\":3.5,\"PlaceOffY\":3.5}]", + "State": 0, + "HasWave": true, + "OrgWidth": 1220, + "OrgLength": 2440, + "PreCutValue": 0, + "HelpCut": false, + "SameKnifeHelpCutGap": 0, + "CutKnifeID": 1, + "HelpKnifeID": -1, + "BoardCount_Remain": 0, + "RemainBoardMessage": "[{\"RemainID\":0,\"BoardNo\":\"\",\"Width\":300.5,\"Length\":400,\"Count\":1,\"UseCount\":0}]", + "ScrapBoardList": [], + "LastSaveDate": "2024-03-11 15:09:53" + }, + { + "OrderNo": "PD240102002614", + "GoodsID": 3819, + "GoodsName": "我是板材2", + "Specification": "2500*1220*18", + "Metrial": "材料2", + "Color": "颜色2", + "Brank": "品牌2", + "Width": 1215, + "Length": 2435, + "Thickness": 18, + "Border": 1, + "CutDia": 6, + "CutGap": 1, + "IsSorted": true, + "BoardCount": 1, + "MinBoardID": 1, + "MaxBoardID": 1, + "AvgLyr_All": 0.72, + "AvgLyr_NoLastOne": 0.72, + "Lyr_LastOne": 0.72, + "CompanyID": 0, + "UsedBoardMessage": "[{\"Bi\":1,\"W\":1215,\"L\":2435,\"Si\":0,\"So\":\"\",\"No\":\"\",\"RM\":\"\",\"LK\":false,\"scrapPts\":null,\"scrapBlocks\":[],\"LE\":false,\"RE\":false}]", + "BlockPlaceMessage": "[{\"zzInfo\":null,\"Bi\":1,\"Bo\":2312002515815,\"X\":1,\"Y\":1,\"Pi\":1,\"Ps\":4,\"Ci\":1,\"Ca\":0,\"CP\":1,\"iA\":true,\"iO\":false,\"Dh\":true,\"Dm\":true,\"OF\":0,\"type\":0,\"points\":[],\"OrgSizeOutOff\":{\"left\":0,\"right\":0,\"upper\":0,\"under\":0,\"width\":0,\"length\":0,\"outWidth\":0,\"outLength\":0,\"hasDone\":false},\"SizeOutOff\":{\"left\":3.5,\"right\":3.5,\"upper\":3.5,\"under\":3.5,\"width\":7,\"length\":7,\"outWidth\":0,\"outLength\":0,\"hasDone\":false},\"PlaceOffX\":3.5,\"PlaceOffY\":3.5}]", + "State": 0, + "HasWave": true, + "OrgWidth": 1221, + "OrgLength": 2501, + "PreCutValue": 0, + "HelpCut": false, + "SameKnifeHelpCutGap": 0, + "CutKnifeID": 1, + "HelpKnifeID": -1, + "BoardCount_Remain": 0, + "RemainBoardMessage": "[]", + "ScrapBoardList": [], + "LastSaveDate": "2024-03-11 15:09:53" + } + ], + "OrderList": [ + { + "CustomerID": 9297, + "CustomerName": "1", + "CustomerPhone": "12355555551", + "SaleDate": "2023-12-18T15:30:58", + "SalePersonNo": 658, + "Consignee": "111", + "ConsigneePhone": "12345678912", + "ConsigneeAddress": "11", + "OrderState": 4, + "OrderMoney": 1756.2, + "Remark": "", + "CustomOrderNo": "", + "DeliveryDate": "2024-01-07T00:00:00", + "PushConfig": false, + "OfferListStr": null, + "CancelState": 0, + "ItemList": null, + "GoodsList": null, + "OfferList": null, + "TotalOrderOfferList": null, + "BlockList": null, + "DataBlockList": null, + "ObjectList": null, + "DataObjectList": null, + "GoodsInfoList": null, + "OrderProcessList": null, + "EditFun": { + "customer": 1 + }, + "SalePerson": "chenlh", + "CdUserID": 658, + "CdUser": "chenlh", + "OrderNo": 20231218029769, + "CreateTime": "2023-12-18T15:30:58", + "CompanyID": 1108, + "SchduleDeliveryDate": "0001-01-01T00:00:00", + "OrderType": 2, + "OrderSort": 0, + "CadDataType": 0, + "Deleted": false, + "ProcessState": null + }, + { + "CustomerID": 9297, + "CustomerName": "1", + "CustomerPhone": "12355555551", + "SaleDate": "2023-11-24T16:23:58", + "SalePersonNo": 658, + "Consignee": "1", + "ConsigneePhone": "11111111111", + "ConsigneeAddress": "1", + "OrderState": 4, + "OrderMoney": 242.6, + "Remark": "", + "CustomOrderNo": "", + "DeliveryDate": "2023-12-14T00:00:00", + "PushConfig": false, + "OfferListStr": null, + "CancelState": 0, + "ItemList": null, + "GoodsList": null, + "OfferList": null, + "TotalOrderOfferList": null, + "BlockList": null, + "DataBlockList": null, + "ObjectList": null, + "DataObjectList": null, + "GoodsInfoList": null, + "OrderProcessList": null, + "EditFun": { + "customer": 1 + }, + "SalePerson": "chenlh", + "CdUserID": 658, + "CdUser": "chenlh", + "OrderNo": 20231124029547, + "CreateTime": "2023-11-24T16:23:58", + "CompanyID": 1108, + "SchduleDeliveryDate": "0001-01-01T00:00:00", + "OrderType": 2, + "OrderSort": 0, + "CadDataType": 0, + "Deleted": false, + "ProcessState": null + } + ], + "ConfigList": [ + { + "Type": 1, + "Setting": "{\"UseWorkPanelSize\":true,\"BoardWidth\":1215,\"BoardLength\":2435,\"BoardSizeList\":[],\"BoardBorder\":1,\"BoardBorder_B\":2,\"CutBorderOff1\":0,\"CutBorderOff2\":0,\"KnifeDia\":6,\"CutGap\":1,\"PreCutValue\":0,\"OriginPointPosition\":1,\"WidthSideAxis\":1,\"LengthSideAxis\":1,\"LocatorPosition\":1,\"UseLocator4Place\":false,\"OffsetX_Board1\":5,\"OffsetY_Board1\":6,\"LocatorPosition_Block\":1,\"OffsetX_Block\":7,\"OffsetY_Block\":8,\"scrapBlockSquare\":200,\"srcapBlockWidthMin\":200,\"scrapBlockWidthMax\":800,\"FreeHeight\":36,\"FreeLocationX\":0,\"FreeLocationY\":2440,\"FreeSpeed\":14997,\"WorkStartHeight\":0,\"WorkStartSpeed\":2995,\"WorkStartDistance\":16,\"WorkPreDistance\":1,\"WorkSpeed\":7995,\"WorkCornerSpeed\":2996,\"WorkEndSpeed\":2996,\"WorkEndDistace\":22,\"sameBorderHighSpeed\":0,\"innerCornerDistence\":0,\"innerCornerSpeed\":5000,\"HoleFreeSpeed\":2398,\"HoleFirstDepth\":1,\"HoleFirstSpeed\":796,\"HoleSpeed\":1196,\"ModelSpeed\":7998,\"AllowDoubleHoleFirstSort\":false,\"YuLiaoBoardDo2FaceBlock\":false,\"ShowDoubleHoleFirst4Place\":false,\"AutoSortingMinWidth\":150,\"FirstCutBorderInFaceB\":false,\"TongHoleOnlyOneTime\":false,\"TongHoleUseTwoTime\":false,\"TongKongDoBackFace\":false,\"AllowDoubleSplit\":false,\"SplitThickness\":40,\"SplitDepth\":8,\"LimitDouleSplit\":false,\"DoubleSplitWidth\":100,\"DoubleSplitLength\":100,\"SplitBlockSeqIds\":\"\",\"UseDianZiJuMethod\":false,\"DisposeCutBlock\":false,\"ThroughModelSkewCutLength\":0,\"UseNewSort\":false,\"UseOrgSortInYX\":false,\"CutBlockInModelFirst\":false,\"LastBoardReplace\":false,\"LastBoardReplaceTime\":5,\"HelpCutKnifeNo\":0,\"HelpCutKnifeDepth\":0,\"HelpCutKnifeWaitingCode\":\"\",\"HelpCutKnifeWaitingCode2\":\"\",\"UseSecodeKnifeBlockName\":\"\",\"UseSecondKnifeBlockWidth\":0,\"UseSecondKnifeBlockLength\":0,\"UseSameKnifeToHelpCut\":false,\"UseSameKnifeToHelpCutGap\":2,\"UseNewKnifeModule\":false,\"KnifeIDForHole\":2,\"Knifes4Hole\":\"1,\",\"ModelKnifeGroup\":[],\"KnifeList\":[{\"KnifeID\":1,\"KnifeName\":\"切割刀1\",\"AxleID\":0,\"AllowCut\":true,\"AllowHole\":true,\"AllowModel\":true,\"AllowPrevRun\":false,\"Diameter\":6,\"Diameter2\":0,\"Length\":40,\"GroupType\":\"\",\"OffsetX\":0,\"OffsetY\":0,\"OffsetZ\":0,\"VKnifAngle\":0,\"Speed\":0,\"PushDepthIncres\":\"\",\"RunCode\":\"\",\"SwitchCode\":\"\",\"StopCode\":\"\",\"IsAdvanceHole\":false,\"RePlaceKnifeID\":0,\"AdvanceHoleCode\":\"\",\"AdvanceHolePoints\":[],\"IsAdvanceHoleGroup\":false,\"IsOutBlockDown\":false},{\"KnifeID\":2,\"KnifeName\":\"切割刀2\",\"AxleID\":0,\"AllowCut\":true,\"AllowHole\":true,\"AllowModel\":true,\"AllowPrevRun\":false,\"Diameter\":5,\"Diameter2\":0,\"Length\":40,\"GroupType\":\"\",\"OffsetX\":0,\"OffsetY\":0,\"OffsetZ\":0,\"VKnifAngle\":0,\"Speed\":0,\"PushDepthIncres\":\"\",\"RunCode\":\"\",\"SwitchCode\":\"\",\"StopCode\":\"\",\"IsAdvanceHole\":false,\"RePlaceKnifeID\":0,\"AdvanceHoleCode\":\"\",\"AdvanceHolePoints\":[],\"IsAdvanceHoleGroup\":false,\"IsOutBlockDown\":false},{\"KnifeID\":3,\"KnifeName\":\"1号排钻刀\",\"AxleID\":0,\"AllowCut\":false,\"AllowHole\":true,\"AllowModel\":false,\"AllowPrevRun\":false,\"Diameter\":5,\"Diameter2\":0,\"Length\":40,\"GroupType\":\"\",\"OffsetX\":0,\"OffsetY\":0,\"OffsetZ\":0,\"VKnifAngle\":0,\"Speed\":0,\"PushDepthIncres\":\"\",\"RunCode\":\"\",\"SwitchCode\":\"\",\"StopCode\":\"\",\"IsAdvanceHole\":false,\"RePlaceKnifeID\":0,\"AdvanceHoleCode\":\"\",\"AdvanceHolePoints\":[],\"IsAdvanceHoleGroup\":false,\"IsOutBlockDown\":false},{\"KnifeID\":4,\"KnifeName\":\"2号排钻刀\",\"AxleID\":0,\"AllowCut\":false,\"AllowHole\":true,\"AllowModel\":false,\"AllowPrevRun\":false,\"Diameter\":8,\"Diameter2\":0,\"Length\":40,\"GroupType\":\"\",\"OffsetX\":0,\"OffsetY\":0,\"OffsetZ\":0,\"VKnifAngle\":0,\"Speed\":0,\"PushDepthIncres\":\"\",\"RunCode\":\"\",\"SwitchCode\":\"\",\"StopCode\":\"\",\"IsAdvanceHole\":false,\"RePlaceKnifeID\":0,\"AdvanceHoleCode\":\"\",\"AdvanceHolePoints\":[],\"IsAdvanceHoleGroup\":false,\"IsOutBlockDown\":false},{\"KnifeID\":5,\"KnifeName\":\"3号排钻刀\",\"AxleID\":0,\"AllowCut\":false,\"AllowHole\":true,\"AllowModel\":false,\"AllowPrevRun\":false,\"Diameter\":10,\"Diameter2\":0,\"Length\":40,\"GroupType\":\"\",\"OffsetX\":0,\"OffsetY\":0,\"OffsetZ\":0,\"VKnifAngle\":0,\"Speed\":0,\"PushDepthIncres\":\"\",\"RunCode\":\"\",\"SwitchCode\":\"\",\"StopCode\":\"\",\"IsAdvanceHole\":false,\"RePlaceKnifeID\":0,\"AdvanceHoleCode\":\"\",\"AdvanceHolePoints\":[],\"IsAdvanceHoleGroup\":false,\"IsOutBlockDown\":false},{\"KnifeID\":6,\"KnifeName\":\"4号排钻刀\",\"AxleID\":0,\"AllowCut\":false,\"AllowHole\":true,\"AllowModel\":false,\"AllowPrevRun\":false,\"Diameter\":15,\"Diameter2\":0,\"Length\":40,\"GroupType\":\"\",\"OffsetX\":0,\"OffsetY\":0,\"OffsetZ\":0,\"VKnifAngle\":0,\"Speed\":0,\"PushDepthIncres\":\"\",\"RunCode\":\"\",\"SwitchCode\":\"\",\"StopCode\":\"\",\"IsAdvanceHole\":false,\"RePlaceKnifeID\":0,\"AdvanceHoleCode\":\"\",\"AdvanceHolePoints\":[],\"IsAdvanceHoleGroup\":false,\"IsOutBlockDown\":false},{\"KnifeID\":7,\"KnifeName\":\"5号排钻刀\",\"AxleID\":0,\"AllowCut\":false,\"AllowHole\":true,\"AllowModel\":false,\"AllowPrevRun\":false,\"Diameter\":20,\"Diameter2\":0,\"Length\":40,\"GroupType\":\"\",\"OffsetX\":0,\"OffsetY\":0,\"OffsetZ\":0,\"VKnifAngle\":0,\"Speed\":0,\"PushDepthIncres\":\"\",\"RunCode\":\"\",\"SwitchCode\":\"\",\"StopCode\":\"\",\"IsAdvanceHole\":false,\"RePlaceKnifeID\":0,\"AdvanceHoleCode\":\"\",\"AdvanceHolePoints\":[],\"IsAdvanceHoleGroup\":false,\"IsOutBlockDown\":false},{\"KnifeID\":8,\"KnifeName\":\"6号排钻刀\",\"AxleID\":0,\"AllowCut\":false,\"AllowHole\":false,\"AllowModel\":false,\"AllowPrevRun\":false,\"Diameter\":0,\"Diameter2\":0,\"Length\":40,\"GroupType\":\"\",\"OffsetX\":0,\"OffsetY\":0,\"OffsetZ\":0,\"VKnifAngle\":0,\"Speed\":0,\"PushDepthIncres\":\"\",\"RunCode\":\"\",\"SwitchCode\":\"\",\"StopCode\":\"\",\"IsAdvanceHole\":false,\"RePlaceKnifeID\":0,\"AdvanceHoleCode\":\"\",\"AdvanceHolePoints\":[],\"IsAdvanceHoleGroup\":false,\"IsOutBlockDown\":false},{\"KnifeID\":9,\"KnifeName\":\"7号排钻刀\",\"AxleID\":0,\"AllowCut\":false,\"AllowHole\":false,\"AllowModel\":false,\"AllowPrevRun\":false,\"Diameter\":0,\"Diameter2\":0,\"Length\":40,\"GroupType\":\"\",\"OffsetX\":0,\"OffsetY\":0,\"OffsetZ\":0,\"VKnifAngle\":0,\"Speed\":0,\"PushDepthIncres\":\"\",\"RunCode\":\"\",\"SwitchCode\":\"\",\"StopCode\":\"\",\"IsAdvanceHole\":false,\"RePlaceKnifeID\":0,\"AdvanceHoleCode\":\"\",\"AdvanceHolePoints\":[],\"IsAdvanceHoleGroup\":false,\"IsOutBlockDown\":false},{\"KnifeID\":10,\"KnifeName\":\"8号排钻刀\",\"AxleID\":0,\"AllowCut\":false,\"AllowHole\":false,\"AllowModel\":false,\"AllowPrevRun\":false,\"Diameter\":0,\"Diameter2\":0,\"Length\":40,\"GroupType\":\"\",\"OffsetX\":0,\"OffsetY\":0,\"OffsetZ\":0,\"VKnifAngle\":0,\"Speed\":0,\"PushDepthIncres\":\"\",\"RunCode\":\"\",\"SwitchCode\":\"\",\"StopCode\":\"\",\"IsAdvanceHole\":false,\"RePlaceKnifeID\":0,\"AdvanceHoleCode\":\"\",\"AdvanceHolePoints\":[],\"IsAdvanceHoleGroup\":false,\"IsOutBlockDown\":false},{\"KnifeID\":11,\"KnifeName\":\"9号排钻刀\",\"AxleID\":0,\"AllowCut\":false,\"AllowHole\":false,\"AllowModel\":false,\"AllowPrevRun\":false,\"Diameter\":0,\"Diameter2\":0,\"Length\":40,\"GroupType\":\"\",\"OffsetX\":0,\"OffsetY\":0,\"OffsetZ\":0,\"VKnifAngle\":0,\"Speed\":0,\"PushDepthIncres\":\"\",\"RunCode\":\"\",\"SwitchCode\":\"\",\"StopCode\":\"\",\"IsAdvanceHole\":false,\"RePlaceKnifeID\":0,\"AdvanceHoleCode\":\"\",\"AdvanceHolePoints\":[],\"IsAdvanceHoleGroup\":false,\"IsOutBlockDown\":false},{\"KnifeID\":12,\"KnifeName\":\"10号排钻刀\",\"AxleID\":0,\"AllowCut\":false,\"AllowHole\":false,\"AllowModel\":false,\"AllowPrevRun\":false,\"Diameter\":10,\"Diameter2\":0,\"Length\":40,\"GroupType\":\"\",\"OffsetX\":0,\"OffsetY\":0,\"OffsetZ\":0,\"VKnifAngle\":0,\"Speed\":0,\"PushDepthIncres\":\"\",\"RunCode\":\"\",\"SwitchCode\":\"\",\"StopCode\":\"\",\"IsAdvanceHole\":false,\"RePlaceKnifeID\":0,\"AdvanceHoleCode\":\"\",\"AdvanceHolePoints\":[],\"IsAdvanceHoleGroup\":false,\"IsOutBlockDown\":false},{\"KnifeID\":13,\"KnifeName\":\"11\",\"AxleID\":0,\"AllowCut\":true,\"AllowHole\":false,\"AllowModel\":true,\"AllowPrevRun\":false,\"Diameter\":6,\"Diameter2\":0,\"Length\":40,\"GroupType\":\"\",\"OffsetX\":0,\"OffsetY\":0,\"OffsetZ\":0,\"VKnifAngle\":0,\"Speed\":0,\"PushDepthIncres\":\"\",\"RunCode\":\"\",\"SwitchCode\":\"\",\"StopCode\":\"\",\"IsAdvanceHole\":false,\"RePlaceKnifeID\":0,\"AdvanceHoleCode\":\"\",\"AdvanceHolePoints\":[],\"IsAdvanceHoleGroup\":false,\"IsOutBlockDown\":false},{\"KnifeID\":14,\"KnifeName\":\"555\",\"AxleID\":0,\"AllowCut\":true,\"AllowHole\":false,\"AllowModel\":true,\"AllowPrevRun\":false,\"Diameter\":6,\"Diameter2\":0,\"Length\":40,\"GroupType\":\"\",\"OffsetX\":0,\"OffsetY\":0,\"OffsetZ\":0,\"VKnifAngle\":0,\"Speed\":0,\"PushDepthIncres\":\"\",\"RunCode\":\"\",\"SwitchCode\":\"\",\"StopCode\":\"\",\"IsAdvanceHole\":false,\"RePlaceKnifeID\":0,\"AdvanceHoleCode\":\"\",\"AdvanceHolePoints\":[],\"IsAdvanceHoleGroup\":false,\"IsOutBlockDown\":false}],\"ExportOrderPathName\":\"{0}_{1}_{2}\",\"ExportBoardPathName\":\"{0} {1} {2} {3}\",\"BoardFileA\":\"{0}_A.nc {1}_A.nc\",\"BoardFileB\":\"{0}_B.nc\",\"BlockFile\":\"{0}.nc\",\"NcFileHead\":\"\",\"NcFileEnd\":\"\",\"NcFileHead_B\":\"\",\"NcFileEnd_B\":\"\",\"NcFileHead_Block\":\"\",\"NcFileEnd_Block\":\"\",\"NcFileBeginCutBlock\":\"\",\"NcFileEndCutBlock\":\"\",\"RegularBlockFilletCurve\":true,\"UnregularBlockFilletCurve\":true,\"DealCircleWithIJ\":true,\"IsTurnOverG2G3\":true,\"ArcLineMaxLength\":0,\"AllowNCComments\":true,\"AllowAddGcodeEndChar\":true,\"GcodeEndChar\":\"11\",\"NcFileIsGB2312\":true,\"NcFileIsUtfBom\":false,\"AllowExportNC_BackFace\":true,\"OneBoardFile\":true,\"AllowExportNC_block\":true,\"AllowExportDataFile\":true,\"AllowExportBoardDxf\":true,\"isNcSimpleXYZ\":false,\"showTwoWorkSpace\":true,\"showChooseCutKnife\":true,\"showPriorFacing\":true,\"showAutoLoadBoard\":true,\"showHoleGroup\":true,\"showAutoNotePrinter\":true,\"showCustomBlockNo\":true,\"showMachine\":false,\"AllowDoubleWorkSpace\":true,\"SameOriginPointPosition\":true,\"OffsetX_WorkNum2\":0,\"OffsetY_WorkNum2\":2600,\"OriginPointPosition2\":0,\"WidthSideAxis2\":0,\"LengthSideAxis2\":2,\"LocatorPosition2\":0,\"OffsetX_Board2\":0,\"OffsetY_Board2\":0,\"AllowCombineNCWithDoubleWorkSpace\":false,\"CombineNCFileName\":\"{5}mm_{0}_{1}_{2}_{3}-{4}.nc\",\"IsOddNumInWorkSpace1\":true,\"IsHoleBlockInSpace1\":true,\"NcFileHead_WorkSpace2\":\"\",\"NcFileEnd_WorkSpace2\":\"\",\"NcFileHead_B_WorkSpace2\":\"\",\"NcFileEnd_B_WorkSpace2\":\"\",\"AllowChangeCutKnifeWithThickness\":false,\"AllowChangeCutKnifeWidthID\":false,\"BoardKnifeList\":[],\"IsPriorFacing_RoleNum\":0,\"DisPloseHoleRole\":false,\"IsIgnore_HolingModeling\":false,\"IsForceHoling_MultiSide_Minimum\":true,\"IgnoreValue_MultiSide_Minimum\":50,\"IsForceHoling_SingleSide_Minimum\":true,\"IgnoreValue_SingleSide_Minimum\":50,\"IsForceHoling_SingleSide_Maximum\":true,\"IgnoreValue_SingleSide_Maximum\":2440,\"IsForceHoling_MultiSide_Maximun\":true,\"IgnoreValue_MultiSide_Maximun\":850,\"IsForceHoling_UnRegularBlock\":true,\"IsForceHoling_HasModel\":false,\"IsIgnore_Modeling\":false,\"doModel_hasModel\":false,\"doModel_UnRegular\":false,\"doModel_twoSmall\":false,\"doModel_twoSmall_Value\":50,\"doModel_oneSmall\":false,\"doModel_oneSmall_Value\":50,\"doModel_twoBig\":false,\"doModel_twoBig_Value\":850,\"doModel_oneBig\":false,\"doModel_oneBig_Value\":2434,\"AllowChangeIgnore\":false,\"IsFoceModeling_hasModel\":false,\"IsFoceModeling_SameHoling\":false,\"IsFoceModeling_MultiLine\":false,\"IsForceModeling_Arc\":false,\"IsForceModeling_Through\":false,\"IsPriorFacing_KaiLiaoMian\":false,\"IsPriorFacing_Reverse\":false,\"IsPriorFacing_SingleModel\":true,\"IsPriorFacing_SingleModel_Front\":true,\"IsPriorFacing_DoubleModel\":true,\"IsPriorFacing_DoubleModel_Front\":true,\"IsPriorFacing_SingleHole\":true,\"IsPriorFacing_SingleHole_Front\":true,\"IsPriorFacing_BigHole\":true,\"IsPriorFacing_BigHole_Front\":true,\"IsPriorFacing_DoubleHole\":true,\"IsPriorFacing_DoubleHole_More\":true,\"IsPriorFacing_CustomFunction\":\"\",\"wr6_OverRun_WdthS\":50,\"wr6_OverRun_WdthE\":1220,\"wr6_OverRun_LengthS\":120,\"wr6_OverRun_LengthE\":2440,\"wr6_OverRun_hasThroghModel\":false,\"wr6_OverRun_hasThroghModel_r\":50,\"wr6_OverRun_hasThroghModel_size\":40000,\"wr6_OverRun_UnRegular\":false,\"wr6_OverRun_hasCorner\":true,\"wr6_OverRun_MaxChamferR\":50,\"wr6_OverRun_MaxInnerLength\":100,\"wr6_OverRun_hasOneRightAngle\":false,\"wr6_OverRun_hasOneBorder\":false,\"wr6_OverRun_WorkGroups\":\"\",\"wr6_OverRun_BlockNames\":\"\",\"wr6_unModel_all\":false,\"wr6_unModel_isThrogh\":true,\"wr6_unModel_isArc\":false,\"wr6_unModel_hasMulLines\":false,\"wr6_unModel_checkRadius\":false,\"wr6_unModel_isRadius\":\"\",\"wr6_unModel_checkName\":false,\"wr6_unModel_isName\":\"\",\"wr6_unModel_checkDepth\":false,\"wr6_unModel_isDepth\":\"\",\"wr6_unModel_isVKnifeModel\":false,\"wr6_unModel_is3VModell\":true,\"wr6_unModel_isLaChao\":false,\"wr6_unModel_notLaChao\":false,\"wr6_laChao_maxWidth\":50,\"wr6_lachao_minLength\":100,\"wr6_unHole_all\":false,\"wr6_unHole_checkRadius\":false,\"wr6_unHole_isRadius\":\"\",\"wr6_unHole_checkType\":false,\"wr6_unHole_isType\":\"\",\"wr6_unHole_checkDepth\":false,\"wr6_unHole_isDepth\":\"\",\"wr6_unHole_isThrogh\":false,\"wr6_unHole_isNoHoleKnife\":false,\"wr6_dragUndo_m2m\":false,\"wr6_dragUndo_m2m_2face\":false,\"wr6_dragUndo_m2h\":false,\"wr6_dragUndo_m2h_2face\":false,\"wr6_dragUndo_h2m\":false,\"wr6_dragUndo_h2m_2face\":false,\"wr6_dragUndo_h2h\":false,\"wr6_dragUndo_h2h_2face\":false,\"wr6_cncDo_BlockNames\":\"\",\"wr6_cncDo_WorkGroups\":\"\",\"wr6_cncDo_modelR\":false,\"wr6_cncDo_modelR_str\":\"\",\"wr6_cncDo_modelD\":false,\"wr6_cncDo_modelD_str\":\"\",\"wr6_cncDo_model_wc\":false,\"wr6_cncDo_holeR\":false,\"wr6_cncDo_holeR_str\":\"\",\"wr6_cncDo_holeD\":false,\"wr6_cncDo_holeD_str\":\"\",\"wr6_cncDo_hole_wc\":false,\"wr6_doStyle_1Face\":0,\"wr6_doStyle_1Face_hole\":true,\"wr6_doStyle_1Face_model\":true,\"wr6_doStyle_1Face_face\":false,\"wr6_doStyle_1Face_pbm\":false,\"wr6_doStyle_1Face_sideHole\":false,\"wr6_doStyle_2Face\":0,\"wr6_doStyle_2Face_hole\":true,\"wr6_doStyle_2Face_model\":true,\"wr6_doStyle_2Face_role\":\"df,cn,mm,bh,mh\",\"wr6_turnFace_roleSeq\":\"df,mm,bh,mh\",\"wr6_CustomFun_use\":false,\"wr6_CustomFun_text\":\"let canCheckBlock = false;\\r\\nlet canCheckModel = false;\\r\\nlet canCheckHole = false;\\r\\nlet canDoWith = false;\\r\\nlet canSplit = false;\\r\\nlet canDoFace = false;\\r\\nfunction checkBlock(obj) { return false; }\\r\\nfunction checkModel(obj) { return false; }\\r\\nfunction checkHole(obj) { return false; }\\r\\nfunction doWith(obj) { return; }\\r\\nfunction split(obj) { return; }\\r\\nfunction doFace(obj) { return false; }\\r\\nreturn { canCheckBlock, canCheckModel, canCheckHole, canDoWith, canSplit, canDoFace, checkBlock, checkModel, checkHole, doWith, split, doFace };\",\"AllowHoleToModel\":false,\"HoleToModelKnifes\":[],\"IsLoadBoardBeforeFileHead\":true,\"NcLoadBoard\":\"\",\"NcFileHoleBegin\":\"\",\"NcFileHoleEnd\":\"\",\"HolingByKnifeDia\":true,\"NoteAutoPrinter\":false,\"NoteAutoPrinterScrapBorad\":false,\"NoteNcName\":\"print_{0}.nc\",\"NotePicName\":\"标签/{0}_{1}.bmp\",\"NotePicType\":\"jpg\",\"NotePicBit\":\"24\",\"NotePrintOnFaceA\":true,\"NotePositionAvoidHole\":true,\"NoteWidth\":60,\"NOteHeight\":40,\"NoteContent\":\"\",\"NotePushInNcFile\":false,\"NoteGB2312\":false,\"NoteUtf8Bom\":false,\"NoteOtherExport\":false,\"NoteOtherFun\":\"\",\"AllowBlockNo_Note\":false,\"BlockNo_Note\":\"return obj.BlockNo;\",\"BoardName\":\"{0}_{1}_{2}_{3}\",\"MinBlockWidth\":10,\"MinHoleRadius\":1,\"MinHoleDepth\":1,\"MinModelDepth\":0,\"MinModelRadius\":1,\"MaxBorderThickness\":10,\"Ignore2in1SideHole\":false,\"Ignore2in1SideHoleGap\":0.01,\"canReloadPlaceInfo\":false,\"MiniumSpaceSize\":5,\"NeatenSpaceGap\":0,\"ResetPositionWithLocator\":false,\"NcNumberFixNumber\":3,\"NcFileRemoveEmptyLine\":true,\"HoleWaitingCode\":\"\",\"prevRunActionCount\":5,\"ShearBorderFaceA\":false,\"DelayDoCountBeforeChangeKnife\":0,\"DelayCodeBeforeChangeKnife\":\"G04 X2.0\",\"UseBoardFaceZ\":false,\"PushNcLineIDStr\":\"{\\\"enable\\\":false,\\\"beginLine\\\":0,\\\"endLine\\\":0,\\\"ignoreEmptyLine\\\":false, \\\"format\\\":\\\"N[4]\\\",\\\"lineID\\\":1}\",\"ReverseModelPoints\":false,\"ModelPointControl\":0,\"ModelCutRedundancy\":0,\"DisPoseModelInBoardBorderWidth\":0,\"DisPoseModelInBoardFace\":1,\"DisPoseModelInBoardBorderForCNC\":false,\"DisPoseModelInBoardReverse\":false,\"EnableFaceWithDoingRate\":false,\"EnableFaceByCncDoing\":false,\"DoingRate\":30,\"PerHoleTime\":0.5,\"PerModelTime\":16,\"EnableNotePrintAutoPosition\":false,\"EnabaleModelOutSize\":true,\"Enable2VModelOutSize\":true,\"OverlapGap\":0.05,\"EnableUnPlacedBlockWithABoard\":false,\"UnregularSizeLimit\":15000,\"ManagerPassword\":\"cftech123456789\",\"Remark\":\"\",\"WebQueryPageSize\":1000,\"ExportRootPath\":\"C:\\\\\",\"AllowSelectExportPath\":false,\"AllowExportImage\":false,\"ManualSortingCornerWidth\":2,\"AllowOppositeDealChuanHole\":false,\"UseSecodeKnifeBlockNames\":null}", + "MachineID": 4686 + }, + { + "Type": 2, + "Setting": "{\"companyID\":0,\"noteName\":\"标签-宽60mm高40mm\",\"width\":480,\"height\":312,\"objects\":[{\"Type\":4,\"ObjcectID\":0,\"ObjectName\":\"板件名称\",\"X\":5,\"Y\":21,\"Width\":150,\"Height\":20,\"Visible\":true,\"IsScrapBlock\":false,\"VisibleExpression\":\"return true;\",\"IsVertical\":false,\"DataText\":\"背板\",\"DataExpression\":\"return obj.BlockName;\",\"DisplayType\":0,\"BarcodeType\":\"CODE39\",\"FontSize\":30,\"FontWeight\":200,\"FontFamily\":\"宋体\",\"TextAlign\":\"left\",\"TextBaseline\":\"center\",\"QrcodeErrorRate\":\"M\"},{\"Type\":4,\"ObjcectID\":0,\"ObjectName\":\"房名柜名\",\"X\":155,\"Y\":25,\"Width\":305,\"Height\":20,\"Visible\":true,\"IsScrapBlock\":false,\"VisibleExpression\":\"return true;\",\"IsVertical\":false,\"DataText\":\"房间名-柜名\",\"DataExpression\":\"return obj.RoomName+'-'+obj.BoxName;\",\"DisplayType\":0,\"BarcodeType\":\"CODE39\",\"FontSize\":20,\"FontWeight\":200,\"FontFamily\":\"宋体\",\"TextAlign\":\"left\",\"TextBaseline\":\"center\",\"QrcodeErrorRate\":\"M\"},{\"Type\":4,\"ObjcectID\":0,\"ObjectName\":\"板材\",\"X\":5,\"Y\":2,\"Width\":350,\"Height\":20,\"Visible\":true,\"IsScrapBlock\":false,\"VisibleExpression\":\"return true;\",\"IsVertical\":false,\"DataText\":\"18mm-经典檀木-生态板\",\"DataExpression\":\"return obj.Thickness+'mm-'+obj.Color+'-'+obj.MetrialName;\",\"DisplayType\":0,\"BarcodeType\":\"CODE39\",\"FontSize\":20,\"FontWeight\":200,\"FontFamily\":\"宋体\",\"TextAlign\":\"left\",\"TextBaseline\":\"center\",\"QrcodeErrorRate\":\"M\"},{\"Type\":6,\"ObjcectID\":0,\"ObjectName\":\"封边图\",\"X\":25,\"Y\":163,\"Width\":80,\"Height\":60,\"Visible\":true,\"IsScrapBlock\":false,\"VisibleExpression\":\"return true;\",\"ShowByRate\":false,\"ShowData\":true,\"DataWidth\":8,\"DataFix\":1,\"DisplayFB\":-1,\"FontSize\":15,\"FontWeight\":800,\"FontFamily\":\"宋体\",\"ShowCncDict\":true,\"CncDictType\":0,\"ArrowsSize\":30,\"ShowSideHole\":false,\"SideHoleFlag\":\"#\",\"showFBStr\":\"return fb.toString();\",\"ShowSideHoleStr\":false,\"ShowSideHoleFnStr\":\"if(holes.some(t=> Math.abs(t.Radius - 1.03) < 0.001)) return 'G拉手';\\r\\nreturn '';\"},{\"Type\":4,\"ObjcectID\":0,\"ObjectName\":\"地址\",\"X\":9,\"Y\":87,\"Width\":150,\"Height\":20,\"Visible\":true,\"IsScrapBlock\":false,\"VisibleExpression\":\"return true;\",\"IsVertical\":false,\"DataText\":\"送货地址\",\"DataExpression\":\"return obj.ConsigneeAddress;\",\"DisplayType\":0,\"BarcodeType\":\"CODE39\",\"FontSize\":20,\"FontWeight\":200,\"FontFamily\":\"宋体\",\"TextAlign\":\"left\",\"TextBaseline\":\"center\",\"QrcodeErrorRate\":\"M\"},{\"Type\":5,\"ObjcectID\":0,\"ObjectName\":\"位置图\",\"X\":181,\"Y\":120,\"Width\":258,\"Height\":79,\"Visible\":true,\"IsScrapBlock\":false,\"VisibleExpression\":\"return true;\",\"ShowByRate\":false,\"LineHeight\":1,\"LineColor\":\"rgb(0,0,0)\",\"FillColor\":\"rgb(0,0,0)\",\"Angle\":0},{\"Type\":4,\"ObjcectID\":0,\"ObjectName\":\"自定义单号\",\"X\":10,\"Y\":118,\"Width\":150,\"Height\":20,\"Visible\":true,\"IsScrapBlock\":false,\"VisibleExpression\":\"return true;\",\"IsVertical\":false,\"DataText\":\"自定义单号\",\"DataExpression\":\"return obj.CustomOrderNo;\",\"DisplayType\":0,\"BarcodeType\":\"CODE39\",\"FontSize\":\"20\",\"FontWeight\":800,\"FontFamily\":\"宋体\",\"TextAlign\":\"left\",\"TextBaseline\":\"center\",\"QrcodeErrorRate\":\"M\"},{\"Type\":4,\"ObjcectID\":0,\"ObjectName\":\"板件备注\",\"X\":13,\"Y\":250,\"Width\":455,\"Height\":20,\"Visible\":true,\"IsScrapBlock\":false,\"VisibleExpression\":\"return true;\",\"IsVertical\":false,\"DataText\":\"板件备注\",\"DataExpression\":\"return obj.Remark1+obj.Remark2+obj.Remark3+obj.Remark4+obj.Remark5;\",\"DisplayType\":0,\"BarcodeType\":\"CODE39\",\"FontSize\":15,\"FontWeight\":800,\"FontFamily\":\"宋体\",\"TextAlign\":\"left\",\"TextBaseline\":\"center\",\"QrcodeErrorRate\":\"M\"},{\"Type\":4,\"ObjcectID\":0,\"ObjectName\":\"反面条码\",\"X\":269,\"Y\":98,\"Width\":120,\"Height\":15,\"Visible\":true,\"IsScrapBlock\":false,\"VisibleExpression\":\"return true;\",\"IsVertical\":false,\"DataText\":\"B184224052\",\"DataExpression\":\"return obj.BlockNo;\",\"DisplayType\":0,\"BarcodeType\":\"CODE128\",\"FontSize\":20,\"FontWeight\":\"400\",\"FontFamily\":\"宋体\",\"TextAlign\":\"left\",\"TextBaseline\":\"top\",\"QrcodeErrorRate\":\"M\"},{\"Type\":4,\"ObjcectID\":0,\"ObjectName\":\"翻面条码\",\"X\":181,\"Y\":211,\"Width\":275,\"Height\":39,\"Visible\":true,\"IsScrapBlock\":false,\"VisibleExpression\":\"return obj.HoleCount_DoFaceB + obj.ModelCount_DoFaceB > 0;\",\"IsVertical\":false,\"DataText\":\"B184224052\",\"DataExpression\":\"return obj.BlockNo;\",\"DisplayType\":1,\"BarcodeType\":\"CODE128\",\"FontSize\":\"20\",\"FontWeight\":\"400\",\"FontFamily\":\"宋体\",\"TextAlign\":\"left\",\"TextBaseline\":\"top\",\"QrcodeErrorRate\":\"M\"},{\"Type\":4,\"ObjcectID\":0,\"ObjectName\":\"条码\",\"X\":181,\"Y\":49,\"Width\":276,\"Height\":46,\"Visible\":true,\"IsScrapBlock\":false,\"VisibleExpression\":\"return true;\",\"IsVertical\":false,\"DataText\":\"B184224052\",\"DataExpression\":\"return obj.BlockNo;\",\"DisplayType\":1,\"BarcodeType\":\"CODE128\",\"FontSize\":\"20\",\"FontWeight\":\"400\",\"FontFamily\":\"宋体\",\"TextAlign\":\"left\",\"TextBaseline\":\"top\",\"QrcodeErrorRate\":\"M\"},{\"Type\":4,\"ObjcectID\":0,\"ObjectName\":\"成品尺寸\",\"X\":3,\"Y\":51,\"Width\":130,\"Height\":20,\"Visible\":true,\"IsScrapBlock\":false,\"VisibleExpression\":\"return true;\",\"IsVertical\":false,\"DataText\":\"900*1033.33\",\"DataExpression\":\"return obj.Length + '*' + obj.Width;\",\"DisplayType\":0,\"BarcodeType\":\"CODE39\",\"FontSize\":30,\"FontWeight\":\"400\",\"FontFamily\":\"宋体\",\"TextAlign\":\"left\",\"TextBaseline\":\"top\",\"QrcodeErrorRate\":\"M\"},{\"Type\":4,\"ObjcectID\":0,\"ObjectName\":\"页码\",\"X\":398,\"Y\":6,\"Width\":69,\"Height\":20,\"Visible\":true,\"IsScrapBlock\":false,\"VisibleExpression\":\"return true;\",\"IsVertical\":false,\"DataText\":\"1页6\",\"DataExpression\":\"return obj.BoardID + '页' + obj.CutSortID;\",\"DisplayType\":0,\"BarcodeType\":\"CODE39\",\"FontSize\":30,\"FontWeight\":\"400\",\"FontFamily\":\"宋体\",\"TextAlign\":\"left\",\"TextBaseline\":\"top\",\"QrcodeErrorRate\":\"M\"},{\"Type\":4,\"ObjcectID\":0,\"ObjectName\":\"余料板尺寸\",\"X\":30,\"Y\":13,\"Width\":300,\"Height\":40,\"Visible\":true,\"IsScrapBlock\":true,\"VisibleExpression\":\"return true;\",\"IsVertical\":false,\"DataText\":\"1120.0 * 1560.0\",\"DataExpression\":\"return obj.Length.toFixed(1) + '*' + obj.Width.toFixed(1);\",\"DisplayType\":0,\"BarcodeType\":\"CODE39\",\"FontSize\":\"40\",\"FontWeight\":\"600\",\"FontFamily\":\"黑体\",\"TextAlign\":\"left\",\"TextBaseline\":\"top\",\"QrcodeErrorRate\":\"M\"},{\"Type\":4,\"ObjcectID\":0,\"ObjectName\":\"余料板编号\",\"X\":30,\"Y\":54,\"Width\":300,\"Height\":40,\"Visible\":true,\"IsScrapBlock\":true,\"VisibleExpression\":\"return true;\",\"IsVertical\":false,\"DataText\":\"编号\",\"DataExpression\":\"return obj.BlockNo;\",\"DisplayType\":0,\"BarcodeType\":\"CODE39\",\"FontSize\":\"40\",\"FontWeight\":\"600\",\"FontFamily\":\"黑体\",\"TextAlign\":\"left\",\"TextBaseline\":\"top\",\"QrcodeErrorRate\":\"M\"},{\"Type\":4,\"ObjcectID\":0,\"ObjectName\":\"余料板颜色\",\"X\":30,\"Y\":99,\"Width\":350,\"Height\":40,\"Visible\":true,\"IsScrapBlock\":true,\"VisibleExpression\":\"return true;\",\"IsVertical\":false,\"DataText\":\"颜色\",\"DataExpression\":\"return obj.MetrialName + ' ' + obj.Color ;\",\"DisplayType\":0,\"BarcodeType\":\"CODE39\",\"FontSize\":\"40\",\"FontWeight\":\"600\",\"FontFamily\":\"黑体\",\"TextAlign\":\"left\",\"TextBaseline\":\"top\",\"QrcodeErrorRate\":\"M\"},{\"Type\":5,\"ObjcectID\":0,\"ObjectName\":\"余料板位置图\",\"X\":30,\"Y\":145,\"Width\":218,\"Height\":80,\"Visible\":true,\"IsScrapBlock\":true,\"VisibleExpression\":\"return true;\",\"ShowByRate\":false,\"LineHeight\":1,\"LineColor\":\"rgb(0,0,0)\",\"FillColor\":\"rgb(0,0,0)\",\"Angle\":0}]}", + "MachineID": 4686 + }, + { + "Type": 3, + "Setting": "{\"BoardBorder\":40,\"GlobalAlpha\":0.95,\"WorkSpaceColor\":\"#6A6C6B\",\"WorkSpaceBorderColor\":\"#000000\",\"ShowAxis\":true,\"AxisPos\":-10,\"AxisNodeWidth0\":3,\"AxisNodeWidth1\":5,\"AxisNodeWidth2\":10,\"AxisblockFlagWidth\":30,\"AxisColor\":\"#8a8c8e\",\"BlockInfoInAxisFont\":\"bold 16px arial\",\"BlockInfoInAxisColor\":\"#0000FF\",\"BlockInfoInAxisColor2\":\"#00FF00\",\"BoardColor\":\"#FFFFFF\",\"BoardColor2\":\"#BAE6C7\",\"BoardBorderColor\":\"#000000\",\"BlockFillColor\":\"#FFFFFF\",\"BlockFillColor2\":\"#CFD0D3\",\"BlockFillColor_overLap1\":\"#FF0000\",\"BlockFillColor_overLap2\":\"#f391a9\",\"BlockFillColor_draging\":\"#00FF00\",\"BlockFillColor_closest\":\"#90d7ec\",\"BlockBorderColor\":\"#000000\",\"BlockBorderColor2\":\"#FF0000\",\"BlockBorderWidth\":4,\"PointFillColor_draging\":\"#FF0000\",\"PointFillColor_closest\":\"#0000FF\",\"ModelLineColor\":\"#BCE7E0\",\"HoleColor\":\"#007d65\",\"HoleColor2\":\"#FFFFFF\",\"ModelLineColor2\":\"#EF2B19\",\"HoleColor3\":\"#50DAC0\",\"FaceBShow\":false,\"CutPoint_Radius\":6,\"PointFillColor_cutPoint\":\"#FF0000\",\"CutSortID_Radius\":10,\"CutSortID_font\":\"18px arial\",\"CutSortID_color\":\"#0000FF\",\"BlockDirectionShow\":true,\"BlockNoShow\":true,\"BlockNoColor\":\"#000000\",\"BlockNoFont\":\"18px arial\",\"BlockSizeShow\":false,\"BlockSizeColor\":\"#000000\",\"BlockSizeFont\":\"10px arial\",\"ScrapBlockStrokeColor\":\"black\",\"ScrapBlockFocusColor\":\"#D3F767\",\"ScrapPlaceBlock\":\"#F9F8BE\",\"HelpKnifeBlockColor\":\"#EAE3EE\"}", + "MachineID": 4686 + } + ], + "SourceType": 2, + "BlockList": [ + { + "RoomName": "主卧", + "BoxName": "下柜", + "OrderNo": 20231124029547, + "BlockID": 4143407, + "GoodsID": 2595, + "OldBlockID": 4143407, + "BlockNo": 2311001625348, + "NoteNo": "", + "BlockName": "左开门板", + "Width": 597, + "Length": 2032, + "Thickness": 18, + "Area": 1.213, + "IsHXDJX": false, + "BorderLeft": 1, + "BorderRight": 1, + "BorderUpper": 1, + "BorderUnder": 1, + "Wave": 0, + "PaiKong": 2, + "BorderLengthLight": 0, + "BorderLengthHeavy": 0, + "RemarkJson": "[]", + "CadDataType": 2, + "ProcessGroupName": "", + "Type": "柜体", + "OpenDoorType": 1, + "ExtraRemark": { + "extra": { + "boardType": "背板", + "throughHoleCount": 0, + "throughModelCount": 0, + "has2DModel": false, + "has3DModel": false, + "composingFace": "任意面", + "processList": [] + } + }, + "ItemID": 8427578, + "IsUnRegular": false, + "IsModel": true, + "BoxGroupNumber": 1, + "BoxNumber": 1, + "BoxMultNumber": 1 + }, + { + "RoomName": "主卧", + "BoxName": "下柜", + "OrderNo": 20231124029547, + "BlockID": 4143408, + "GoodsID": 2595, + "OldBlockID": 4143408, + "BlockNo": 2311001625349, + "NoteNo": "", + "BlockName": "右开门板", + "Width": 597, + "Length": 2032, + "Thickness": 18, + "Area": 1.213, + "IsHXDJX": false, + "BorderLeft": 1, + "BorderRight": 1, + "BorderUpper": 1, + "BorderUnder": 1, + "Wave": 0, + "PaiKong": 2, + "BorderLengthLight": 0, + "BorderLengthHeavy": 0, + "RemarkJson": "[]", + "CadDataType": 2, + "ProcessGroupName": "", + "Type": "柜体", + "OpenDoorType": 2, + "ExtraRemark": { + "extra": { + "boardType": "背板", + "throughHoleCount": 0, + "throughModelCount": 0, + "has2DModel": false, + "has3DModel": false, + "composingFace": "任意面", + "processList": [] + } + }, + "ItemID": 8427579, + "IsUnRegular": false, + "IsModel": true, + "BoxGroupNumber": 1, + "BoxNumber": 1, + "BoxMultNumber": 1 + }, + { + "RoomName": "未命名", + "BoxName": "标准柜", + "OrderNo": 20231218029769, + "BlockID": 4152899, + "GoodsID": 3819, + "OldBlockID": 4152899, + "BlockNo": 2312002515815, + "NoteNo": "", + "BlockName": "背板", + "Width": 600, + "Length": 1200, + "Thickness": 18, + "Area": 0.72, + "IsHXDJX": false, + "BorderLeft": 1, + "BorderRight": 1, + "BorderUpper": 1, + "BorderUnder": 1, + "Wave": 0, + "PaiKong": 1, + "BorderLengthLight": 0, + "BorderLengthHeavy": 0, + "RemarkJson": "[]", + "CadDataType": 2, + "ProcessGroupName": "", + "Type": "柜体", + "OpenDoorType": 0, + "ExtraRemark": { + "extra": { + "boardType": "背板", + "throughHoleCount": 0, + "throughModelCount": 0, + "has2DModel": false, + "has3DModel": false, + "composingFace": "反面", + "processList": [] + } + }, + "ItemID": 8626295, + "IsUnRegular": false, + "IsModel": false, + "BoxGroupNumber": 2, + "BoxNumber": 1, + "BoxMultNumber": 1 + } + ], + "BlockDetailList": [ + { + "ID": 4143407, + "OrderNo": 20231124029547, + "PointDetail": [], + "ModelDetail": [ + { + "ModelID": 1, + "LineID": 1, + "Face": 1, + "KnifeName": "", + "KnifeRadius": 3, + "Depth": 12.04779353108516, + "PointList": [ + { + "LineID": 1, + "PointID": 1, + "PointX": 3.9999999999999787, + "PointY": 85.8676943030234, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 2, + "PointX": 3.9999999999999787, + "PointY": 111.90365259751412, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 3, + "PointX": 30, + "PointY": 111.90365259751412, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 4, + "PointX": 30, + "PointY": 85.8676943030234, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 5, + "PointX": 3.9999999999999787, + "PointY": 85.8676943030234, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 6, + "PointX": 9.999999999999979, + "PointY": 91.8676943030234, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 7, + "PointX": 24, + "PointY": 91.8676943030234, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 8, + "PointX": 24, + "PointY": 105.90365259751412, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 9, + "PointX": 9.999999999999979, + "PointY": 105.90365259751412, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 10, + "PointX": 9.999999999999979, + "PointY": 91.8676943030234, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 11, + "PointX": 15.999999999999979, + "PointY": 97.8676943030234, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 12, + "PointX": 18, + "PointY": 97.8676943030234, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 13, + "PointX": 18, + "PointY": 99.90365259751412, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 14, + "PointX": 15.999999999999979, + "PointY": 99.90365259751412, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 15, + "PointX": 15.999999999999979, + "PointY": 97.8676943030234, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + } + ], + "OffsetList": [], + "OriginModeling": { + "outline": { + "pts": [ + { + "x": 34, + "y": 115.90365259751412 + }, + { + "x": 1.9999999999999787, + "y": 115.90365259751412 + }, + { + "x": 1.9999999999999787, + "y": 83.8676943030234 + }, + { + "x": 34, + "y": 83.8676943030234 + }, + { + "x": 34, + "y": 115.90365259751412 + } + ], + "buls": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "holes": [], + "thickness": 0, + "dir": 0, + "knifeRadius": 0, + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + } + }, + { + "ModelID": 2, + "LineID": 2, + "Face": 1, + "KnifeName": "", + "KnifeRadius": 3, + "Depth": 12.04779353108516, + "PointList": [ + { + "LineID": 2, + "PointID": 1, + "PointX": 3.999999999999986, + "PointY": 1001.8676943030234, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 2, + "PointID": 2, + "PointX": 3.999999999999986, + "PointY": 1027.903652597514, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 2, + "PointID": 3, + "PointX": 30, + "PointY": 1027.903652597514, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 2, + "PointID": 4, + "PointX": 30, + "PointY": 1001.8676943030234, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 2, + "PointID": 5, + "PointX": 3.999999999999986, + "PointY": 1001.8676943030234, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 2, + "PointID": 6, + "PointX": 9.999999999999986, + "PointY": 1007.8676943030234, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 2, + "PointID": 7, + "PointX": 24, + "PointY": 1007.8676943030234, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 2, + "PointID": 8, + "PointX": 24, + "PointY": 1021.9036525975141, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 2, + "PointID": 9, + "PointX": 9.999999999999986, + "PointY": 1021.9036525975141, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 2, + "PointID": 10, + "PointX": 9.999999999999986, + "PointY": 1007.8676943030234, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 2, + "PointID": 11, + "PointX": 15.999999999999986, + "PointY": 1013.8676943030234, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 2, + "PointID": 12, + "PointX": 18, + "PointY": 1013.8676943030234, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 2, + "PointID": 13, + "PointX": 18, + "PointY": 1015.9036525975141, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 2, + "PointID": 14, + "PointX": 15.999999999999986, + "PointY": 1015.9036525975141, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 2, + "PointID": 15, + "PointX": 15.999999999999986, + "PointY": 1013.8676943030234, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + } + ], + "OffsetList": [], + "OriginModeling": { + "outline": { + "pts": [ + { + "x": 34, + "y": 1031.903652597514 + }, + { + "x": 1.9999999999999858, + "y": 1031.903652597514 + }, + { + "x": 1.9999999999999858, + "y": 999.8676943030234 + }, + { + "x": 34, + "y": 999.8676943030234 + }, + { + "x": 34, + "y": 1031.903652597514 + } + ], + "buls": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "holes": [], + "thickness": 0, + "dir": 0, + "knifeRadius": 0, + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + } + }, + { + "ModelID": 3, + "LineID": 3, + "Face": 1, + "KnifeName": "", + "KnifeRadius": 3, + "Depth": 12.04779353108516, + "PointList": [ + { + "LineID": 3, + "PointID": 1, + "PointX": 3.9999999999999645, + "PointY": 1917.8676943030234, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 3, + "PointID": 2, + "PointX": 3.9999999999999645, + "PointY": 1943.903652597514, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 3, + "PointID": 3, + "PointX": 30, + "PointY": 1943.903652597514, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 3, + "PointID": 4, + "PointX": 30, + "PointY": 1917.8676943030234, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 3, + "PointID": 5, + "PointX": 3.9999999999999645, + "PointY": 1917.8676943030234, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 3, + "PointID": 6, + "PointX": 9.999999999999964, + "PointY": 1923.8676943030234, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 3, + "PointID": 7, + "PointX": 24, + "PointY": 1923.8676943030234, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 3, + "PointID": 8, + "PointX": 24, + "PointY": 1937.903652597514, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 3, + "PointID": 9, + "PointX": 9.999999999999964, + "PointY": 1937.903652597514, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 3, + "PointID": 10, + "PointX": 9.999999999999964, + "PointY": 1923.8676943030234, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 3, + "PointID": 11, + "PointX": 15.999999999999964, + "PointY": 1929.8676943030234, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 3, + "PointID": 12, + "PointX": 18, + "PointY": 1929.8676943030234, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 3, + "PointID": 13, + "PointX": 18, + "PointY": 1931.903652597514, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 3, + "PointID": 14, + "PointX": 15.999999999999964, + "PointY": 1931.903652597514, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 3, + "PointID": 15, + "PointX": 15.999999999999964, + "PointY": 1929.8676943030234, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + } + ], + "OffsetList": [], + "OriginModeling": { + "outline": { + "pts": [ + { + "x": 34, + "y": 1947.903652597514 + }, + { + "x": 1.9999999999999645, + "y": 1947.903652597514 + }, + { + "x": 1.9999999999999645, + "y": 1915.8676943030234 + }, + { + "x": 34, + "y": 1915.8676943030234 + }, + { + "x": 34, + "y": 1947.903652597514 + } + ], + "buls": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "holes": [], + "thickness": 0, + "dir": 0, + "knifeRadius": 0, + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + } + } + ], + "HoleDetail": [], + "OffSet": { + "x": 1, + "y": 1, + "z": 0 + }, + "NewVersion": false, + "OrgPointDetail": [], + "KaiLiaoSize": { + "width": 595, + "height": 2030 + }, + "SideModelDetail": [], + "SideHoleDetail": [] + }, + { + "ID": 4143408, + "OrderNo": 20231124029547, + "PointDetail": [], + "ModelDetail": [ + { + "ModelID": 1, + "LineID": 1, + "Face": 1, + "KnifeName": "", + "KnifeRadius": 3, + "Depth": 12.04779353108516, + "PointList": [ + { + "LineID": 1, + "PointID": 1, + "PointX": 565, + "PointY": 86.09634740248588, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 2, + "PointX": 565, + "PointY": 112.1323056969766, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 3, + "PointX": 591.0000000000001, + "PointY": 112.1323056969766, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 4, + "PointX": 591.0000000000001, + "PointY": 86.09634740248588, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 5, + "PointX": 565, + "PointY": 86.09634740248588, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 6, + "PointX": 571, + "PointY": 92.09634740248588, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 7, + "PointX": 585.0000000000001, + "PointY": 92.09634740248588, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 8, + "PointX": 585.0000000000001, + "PointY": 106.1323056969766, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 9, + "PointX": 571, + "PointY": 106.1323056969766, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 10, + "PointX": 571, + "PointY": 92.09634740248588, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 11, + "PointX": 577, + "PointY": 98.09634740248588, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 12, + "PointX": 579.0000000000001, + "PointY": 98.09634740248588, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 13, + "PointX": 579.0000000000001, + "PointY": 100.1323056969766, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 14, + "PointX": 577, + "PointY": 100.1323056969766, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 15, + "PointX": 577, + "PointY": 98.09634740248588, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + } + ], + "OffsetList": [], + "OriginModeling": { + "outline": { + "pts": [ + { + "x": 563, + "y": 84.09634740248588 + }, + { + "x": 595.0000000000001, + "y": 84.09634740248588 + }, + { + "x": 595.0000000000001, + "y": 116.1323056969766 + }, + { + "x": 563, + "y": 116.1323056969766 + }, + { + "x": 563, + "y": 84.09634740248588 + } + ], + "buls": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "holes": [], + "thickness": 0, + "dir": 0, + "knifeRadius": 0, + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + } + }, + { + "ModelID": 2, + "LineID": 2, + "Face": 1, + "KnifeName": "", + "KnifeRadius": 3, + "Depth": 12.04779353108516, + "PointList": [ + { + "LineID": 2, + "PointID": 1, + "PointX": 565, + "PointY": 1002.0963474024861, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 2, + "PointID": 2, + "PointX": 565, + "PointY": 1028.1323056969768, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 2, + "PointID": 3, + "PointX": 591, + "PointY": 1028.132305696977, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 2, + "PointID": 4, + "PointX": 591, + "PointY": 1002.0963474024861, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 2, + "PointID": 5, + "PointX": 565, + "PointY": 1002.0963474024861, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 2, + "PointID": 6, + "PointX": 571, + "PointY": 1008.0963474024861, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 2, + "PointID": 7, + "PointX": 585, + "PointY": 1008.0963474024861, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 2, + "PointID": 8, + "PointX": 585, + "PointY": 1022.1323056969769, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 2, + "PointID": 9, + "PointX": 571, + "PointY": 1022.1323056969769, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 2, + "PointID": 10, + "PointX": 571, + "PointY": 1008.0963474024861, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 2, + "PointID": 11, + "PointX": 577, + "PointY": 1014.0963474024861, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 2, + "PointID": 12, + "PointX": 579, + "PointY": 1014.0963474024861, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 2, + "PointID": 13, + "PointX": 579, + "PointY": 1016.1323056969769, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 2, + "PointID": 14, + "PointX": 577, + "PointY": 1016.1323056969769, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 2, + "PointID": 15, + "PointX": 577, + "PointY": 1014.0963474024861, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + } + ], + "OffsetList": [], + "OriginModeling": { + "outline": { + "pts": [ + { + "x": 563, + "y": 1000.0963474024861 + }, + { + "x": 595, + "y": 1000.0963474024861 + }, + { + "x": 595, + "y": 1032.132305696977 + }, + { + "x": 563, + "y": 1032.1323056969768 + }, + { + "x": 563, + "y": 1000.0963474024861 + } + ], + "buls": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "holes": [], + "thickness": 0, + "dir": 0, + "knifeRadius": 0, + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + } + }, + { + "ModelID": 3, + "LineID": 3, + "Face": 1, + "KnifeName": "", + "KnifeRadius": 3, + "Depth": 12.04779353108516, + "PointList": [ + { + "LineID": 3, + "PointID": 1, + "PointX": 565, + "PointY": 1918.0963474024861, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 3, + "PointID": 2, + "PointX": 565, + "PointY": 1944.1323056969768, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 3, + "PointID": 3, + "PointX": 591, + "PointY": 1944.1323056969768, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 3, + "PointID": 4, + "PointX": 591, + "PointY": 1918.0963474024861, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 3, + "PointID": 5, + "PointX": 565, + "PointY": 1918.0963474024861, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 3, + "PointID": 6, + "PointX": 571, + "PointY": 1924.0963474024861, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 3, + "PointID": 7, + "PointX": 585, + "PointY": 1924.0963474024861, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 3, + "PointID": 8, + "PointX": 585, + "PointY": 1938.1323056969768, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 3, + "PointID": 9, + "PointX": 571, + "PointY": 1938.1323056969768, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 3, + "PointID": 10, + "PointX": 571, + "PointY": 1924.0963474024861, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 3, + "PointID": 11, + "PointX": 577, + "PointY": 1930.0963474024861, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 3, + "PointID": 12, + "PointX": 579, + "PointY": 1930.0963474024861, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 3, + "PointID": 13, + "PointX": 579, + "PointY": 1932.1323056969768, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 3, + "PointID": 14, + "PointX": 577, + "PointY": 1932.1323056969768, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + }, + { + "LineID": 3, + "PointID": 15, + "PointX": 577, + "PointY": 1930.0963474024861, + "Radius": 0, + "Depth": 12.04779353108516, + "Curve": 0 + } + ], + "OffsetList": [], + "OriginModeling": { + "outline": { + "pts": [ + { + "x": 563, + "y": 1916.0963474024861 + }, + { + "x": 595, + "y": 1916.0963474024861 + }, + { + "x": 595, + "y": 1948.1323056969768 + }, + { + "x": 563, + "y": 1948.1323056969768 + }, + { + "x": 563, + "y": 1916.0963474024861 + } + ], + "buls": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "holes": [], + "thickness": 0, + "dir": 0, + "knifeRadius": 0, + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + } + } + ], + "HoleDetail": [], + "OffSet": { + "x": 1, + "y": 1, + "z": 0 + }, + "NewVersion": false, + "OrgPointDetail": [], + "KaiLiaoSize": { + "width": 595, + "height": 2030 + }, + "SideModelDetail": [], + "SideHoleDetail": [] + }, + { + "ID": 4152899, + "OrderNo": 20231218029769, + "PointDetail": [], + "ModelDetail": [ + { + "ModelID": 1, + "LineID": 1, + "Face": 0, + "KnifeName": "", + "KnifeRadius": 3, + "Depth": 12, + "PointList": [ + { + "LineID": 1, + "PointID": 1, + "PointX": 32, + "PointY": 32, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 2, + "PointX": 32, + "PointY": 1166, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 3, + "PointX": 566, + "PointY": 1166, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 4, + "PointX": 566, + "PointY": 32, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 5, + "PointX": 32, + "PointY": 32, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 6, + "PointX": 38, + "PointY": 38, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 7, + "PointX": 560, + "PointY": 38, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 8, + "PointX": 560, + "PointY": 1160, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 9, + "PointX": 38, + "PointY": 1160, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 10, + "PointX": 38, + "PointY": 38, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 11, + "PointX": 44, + "PointY": 44, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 12, + "PointX": 554, + "PointY": 44, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 13, + "PointX": 554, + "PointY": 1154, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 14, + "PointX": 44, + "PointY": 1154, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 15, + "PointX": 44, + "PointY": 44, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 16, + "PointX": 50, + "PointY": 50, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 17, + "PointX": 548, + "PointY": 50, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 18, + "PointX": 548, + "PointY": 1148, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 19, + "PointX": 50, + "PointY": 1148, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 20, + "PointX": 50, + "PointY": 50, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 21, + "PointX": 56, + "PointY": 56, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 22, + "PointX": 542, + "PointY": 56, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 23, + "PointX": 542, + "PointY": 1142, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 24, + "PointX": 56, + "PointY": 1142, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 25, + "PointX": 56, + "PointY": 56, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 26, + "PointX": 62, + "PointY": 62, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 27, + "PointX": 536, + "PointY": 62, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 28, + "PointX": 536, + "PointY": 1136, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 29, + "PointX": 62, + "PointY": 1136, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 30, + "PointX": 62, + "PointY": 62, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 31, + "PointX": 68, + "PointY": 68, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 32, + "PointX": 530, + "PointY": 68, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 33, + "PointX": 530, + "PointY": 1130, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 34, + "PointX": 68, + "PointY": 1130, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 35, + "PointX": 68, + "PointY": 68, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 36, + "PointX": 74, + "PointY": 74, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 37, + "PointX": 524, + "PointY": 74, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 38, + "PointX": 524, + "PointY": 1124, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 39, + "PointX": 74, + "PointY": 1124, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 40, + "PointX": 74, + "PointY": 74, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 41, + "PointX": 80, + "PointY": 80, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 42, + "PointX": 518, + "PointY": 80, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 43, + "PointX": 518, + "PointY": 1118, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 44, + "PointX": 80, + "PointY": 1118, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 45, + "PointX": 80, + "PointY": 80, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 46, + "PointX": 86, + "PointY": 86, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 47, + "PointX": 512, + "PointY": 86, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 48, + "PointX": 512, + "PointY": 1112, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 49, + "PointX": 86, + "PointY": 1112, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 50, + "PointX": 86, + "PointY": 86, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 51, + "PointX": 92, + "PointY": 92, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 52, + "PointX": 506, + "PointY": 92, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 53, + "PointX": 506, + "PointY": 1106, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 54, + "PointX": 92, + "PointY": 1106, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 55, + "PointX": 92, + "PointY": 92, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 56, + "PointX": 98, + "PointY": 98, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 57, + "PointX": 500, + "PointY": 98, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 58, + "PointX": 500, + "PointY": 1100, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 59, + "PointX": 98, + "PointY": 1100, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 60, + "PointX": 98, + "PointY": 98, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 61, + "PointX": 104, + "PointY": 104, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 62, + "PointX": 494, + "PointY": 104, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 63, + "PointX": 494, + "PointY": 1094, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 64, + "PointX": 104, + "PointY": 1094, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 65, + "PointX": 104, + "PointY": 104, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 66, + "PointX": 110, + "PointY": 110, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 67, + "PointX": 488, + "PointY": 110, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 68, + "PointX": 488, + "PointY": 1088, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 69, + "PointX": 110, + "PointY": 1088, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 70, + "PointX": 110, + "PointY": 110, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 71, + "PointX": 116, + "PointY": 116, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 72, + "PointX": 482, + "PointY": 116, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 73, + "PointX": 482, + "PointY": 1082, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 74, + "PointX": 116, + "PointY": 1082, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 75, + "PointX": 116, + "PointY": 116, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 76, + "PointX": 122, + "PointY": 122, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 77, + "PointX": 476, + "PointY": 122, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 78, + "PointX": 476, + "PointY": 1076, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 79, + "PointX": 122, + "PointY": 1076, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 80, + "PointX": 122, + "PointY": 122, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 81, + "PointX": 128, + "PointY": 128, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 82, + "PointX": 470, + "PointY": 128, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 83, + "PointX": 470, + "PointY": 1070, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 84, + "PointX": 128, + "PointY": 1070, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 85, + "PointX": 128, + "PointY": 128, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 86, + "PointX": 134, + "PointY": 134, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 87, + "PointX": 464, + "PointY": 134, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 88, + "PointX": 464, + "PointY": 1064, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 89, + "PointX": 134, + "PointY": 1064, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 90, + "PointX": 134, + "PointY": 134, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 91, + "PointX": 140, + "PointY": 140, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 92, + "PointX": 458, + "PointY": 140, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 93, + "PointX": 458, + "PointY": 1058, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 94, + "PointX": 140, + "PointY": 1058, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 95, + "PointX": 140, + "PointY": 140, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 96, + "PointX": 146, + "PointY": 146, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 97, + "PointX": 452, + "PointY": 146, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 98, + "PointX": 452, + "PointY": 1052, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 99, + "PointX": 146, + "PointY": 1052, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 100, + "PointX": 146, + "PointY": 146, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 101, + "PointX": 152, + "PointY": 152, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 102, + "PointX": 446, + "PointY": 152, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 103, + "PointX": 446, + "PointY": 1046, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 104, + "PointX": 152, + "PointY": 1046, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 105, + "PointX": 152, + "PointY": 152, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 106, + "PointX": 158, + "PointY": 158, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 107, + "PointX": 440, + "PointY": 158, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 108, + "PointX": 440, + "PointY": 1040, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 109, + "PointX": 158, + "PointY": 1040, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 110, + "PointX": 158, + "PointY": 158, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 111, + "PointX": 164, + "PointY": 164, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 112, + "PointX": 434, + "PointY": 164, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 113, + "PointX": 434, + "PointY": 1034, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 114, + "PointX": 164, + "PointY": 1034, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 115, + "PointX": 164, + "PointY": 164, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 116, + "PointX": 170, + "PointY": 170, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 117, + "PointX": 428, + "PointY": 170, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 118, + "PointX": 428, + "PointY": 1028, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 119, + "PointX": 170, + "PointY": 1028, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 120, + "PointX": 170, + "PointY": 170, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 121, + "PointX": 176, + "PointY": 176, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 122, + "PointX": 422, + "PointY": 176, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 123, + "PointX": 422, + "PointY": 1022, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 124, + "PointX": 176, + "PointY": 1022, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 125, + "PointX": 176, + "PointY": 176, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 126, + "PointX": 182, + "PointY": 182, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 127, + "PointX": 416, + "PointY": 182, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 128, + "PointX": 416, + "PointY": 1016, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 129, + "PointX": 182, + "PointY": 1016, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 130, + "PointX": 182, + "PointY": 182, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 131, + "PointX": 188, + "PointY": 188, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 132, + "PointX": 410, + "PointY": 188, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 133, + "PointX": 410, + "PointY": 1010, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 134, + "PointX": 188, + "PointY": 1010, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 135, + "PointX": 188, + "PointY": 188, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 136, + "PointX": 194, + "PointY": 194, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 137, + "PointX": 404, + "PointY": 194, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 138, + "PointX": 404, + "PointY": 1004, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 139, + "PointX": 194, + "PointY": 1004, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 140, + "PointX": 194, + "PointY": 194, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 141, + "PointX": 200, + "PointY": 200, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 142, + "PointX": 398, + "PointY": 200, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 143, + "PointX": 398, + "PointY": 998, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 144, + "PointX": 200, + "PointY": 998, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 145, + "PointX": 200, + "PointY": 200, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 146, + "PointX": 206, + "PointY": 206, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 147, + "PointX": 392, + "PointY": 206, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 148, + "PointX": 392, + "PointY": 992, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 149, + "PointX": 206, + "PointY": 992, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 150, + "PointX": 206, + "PointY": 206, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 151, + "PointX": 212, + "PointY": 212, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 152, + "PointX": 386, + "PointY": 212, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 153, + "PointX": 386, + "PointY": 986, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 154, + "PointX": 212, + "PointY": 986, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 155, + "PointX": 212, + "PointY": 212, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 156, + "PointX": 218, + "PointY": 218, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 157, + "PointX": 380, + "PointY": 218, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 158, + "PointX": 380, + "PointY": 980, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 159, + "PointX": 218, + "PointY": 980, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 160, + "PointX": 218, + "PointY": 218, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 161, + "PointX": 224, + "PointY": 224, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 162, + "PointX": 374, + "PointY": 224, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 163, + "PointX": 374, + "PointY": 974, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 164, + "PointX": 224, + "PointY": 974, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 165, + "PointX": 224, + "PointY": 224, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 166, + "PointX": 230, + "PointY": 230, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 167, + "PointX": 368, + "PointY": 230, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 168, + "PointX": 368, + "PointY": 968, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 169, + "PointX": 230, + "PointY": 968, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 170, + "PointX": 230, + "PointY": 230, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 171, + "PointX": 236, + "PointY": 236, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 172, + "PointX": 362, + "PointY": 236, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 173, + "PointX": 362, + "PointY": 962, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 174, + "PointX": 236, + "PointY": 962, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 175, + "PointX": 236, + "PointY": 236, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 176, + "PointX": 242, + "PointY": 242, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 177, + "PointX": 356, + "PointY": 242, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 178, + "PointX": 356, + "PointY": 956, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 179, + "PointX": 242, + "PointY": 956, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 180, + "PointX": 242, + "PointY": 242, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 181, + "PointX": 248, + "PointY": 248, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 182, + "PointX": 350, + "PointY": 248, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 183, + "PointX": 350, + "PointY": 950, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 184, + "PointX": 248, + "PointY": 950, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 185, + "PointX": 248, + "PointY": 248, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 186, + "PointX": 254, + "PointY": 254, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 187, + "PointX": 344, + "PointY": 254, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 188, + "PointX": 344, + "PointY": 944, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 189, + "PointX": 254, + "PointY": 944, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 190, + "PointX": 254, + "PointY": 254, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 191, + "PointX": 260, + "PointY": 260, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 192, + "PointX": 338, + "PointY": 260, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 193, + "PointX": 338, + "PointY": 938, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 194, + "PointX": 260, + "PointY": 938, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 195, + "PointX": 260, + "PointY": 260, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 196, + "PointX": 266, + "PointY": 266, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 197, + "PointX": 332, + "PointY": 266, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 198, + "PointX": 332, + "PointY": 932, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 199, + "PointX": 266, + "PointY": 932, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 200, + "PointX": 266, + "PointY": 266, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 201, + "PointX": 272, + "PointY": 272, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 202, + "PointX": 326, + "PointY": 272, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 203, + "PointX": 326, + "PointY": 926, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 204, + "PointX": 272, + "PointY": 926, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 205, + "PointX": 272, + "PointY": 272, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 206, + "PointX": 278, + "PointY": 278, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 207, + "PointX": 320, + "PointY": 278, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 208, + "PointX": 320, + "PointY": 920, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 209, + "PointX": 278, + "PointY": 920, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 210, + "PointX": 278, + "PointY": 278, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 211, + "PointX": 284, + "PointY": 284, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 212, + "PointX": 314, + "PointY": 284, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 213, + "PointX": 314, + "PointY": 914, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 214, + "PointX": 284, + "PointY": 914, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 215, + "PointX": 284, + "PointY": 284, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 216, + "PointX": 290, + "PointY": 290, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 217, + "PointX": 308, + "PointY": 290, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 218, + "PointX": 308, + "PointY": 908, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 219, + "PointX": 290, + "PointY": 908, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 220, + "PointX": 290, + "PointY": 290, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 221, + "PointX": 296, + "PointY": 296, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 222, + "PointX": 302, + "PointY": 296, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 223, + "PointX": 302, + "PointY": 902, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 224, + "PointX": 296, + "PointY": 902, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 225, + "PointX": 296, + "PointY": 296, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 226, + "PointX": 299, + "PointY": 299, + "Radius": 0, + "Depth": 12, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 227, + "PointX": 299, + "PointY": 899, + "Radius": 0, + "Depth": 12, + "Curve": 0 + } + ], + "OffsetList": [], + "OriginModeling": { + "outline": { + "pts": [ + { + "x": 30, + "y": 30 + }, + { + "x": 570, + "y": 30 + }, + { + "x": 570, + "y": 1170 + }, + { + "x": 30, + "y": 1170 + }, + { + "x": 30, + "y": 30 + } + ], + "buls": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "holes": [], + "thickness": 0, + "dir": 0, + "knifeRadius": 0, + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + } + } + ], + "HoleDetail": [], + "OffSet": { + "x": 1, + "y": 1, + "z": 0 + }, + "NewVersion": false, + "OrgPointDetail": [], + "KaiLiaoSize": { + "width": 598, + "height": 1198 + }, + "SideModelDetail": [], + "SideHoleDetail": [] + } + ], + "AreaDeleted": false +} \ 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/framework/rpc/config/RpcConfiguration.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/framework/rpc/config/RpcConfiguration.java index d9db1aae4..624f44f4c 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/framework/rpc/config/RpcConfiguration.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/framework/rpc/config/RpcConfiguration.java @@ -1,5 +1,6 @@ package com.cf.imes.module.executor.framework.rpc.config; +import com.cf.imes.module.infra.api.file.FileApi; import com.cf.imes.module.system.api.machine.MachineApi; import com.cf.imes.module.system.api.user.AdminUserApi; import org.springframework.cloud.openfeign.EnableFeignClients; @@ -9,6 +10,6 @@ import org.springframework.context.annotation.Configuration; * @author there */ @Configuration(proxyBeanMethods = false) -@EnableFeignClients(clients = {AdminUserApi.class, MachineApi.class}) +@EnableFeignClients(clients = {AdminUserApi.class, MachineApi.class, FileApi.class}) public class RpcConfiguration { } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanService.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanService.java index 3d15ba2c5..008c6e95f 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanService.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanService.java @@ -1,9 +1,17 @@ package com.cf.imes.module.executor.service.optimizeplan; +import com.cf.imes.module.executor.controller.admin.plan.vo.AddRemainReqVO; import com.cf.imes.module.executor.controller.admin.plan.vo.PlateOptimize; +import com.cf.imes.module.executor.controller.admin.plan.vo.SavePlanPlateResult; import java.util.List; public interface OptimizePlanService { List getPlateListByPlanId(Long planId); + + Boolean addRemain(AddRemainReqVO vo); + + Boolean savePlanPlateResult(SavePlanPlateResult result); + + Boolean commit(Long planId); } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java index 01ccc83d0..c4c03583e 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java @@ -1,23 +1,113 @@ package com.cf.imes.module.executor.service.optimizeplan; +import cn.hutool.core.util.StrUtil; +import com.cf.imes.module.executor.controller.admin.plan.vo.AddRemainReqVO; import com.cf.imes.module.executor.controller.admin.plan.vo.PlateOptimize; +import com.cf.imes.module.executor.controller.admin.plan.vo.SavePlanPlateResult; +import com.cf.imes.module.executor.dal.dataobject.plan.PlanDO; +import com.cf.imes.module.executor.dal.dataobject.remainplaten.RemainPlateDO; import com.cf.imes.module.executor.dal.mysql.plan.PlanMapper; +import com.cf.imes.module.executor.dal.mysql.remainplaten.RemainPlateMapper; +import com.cf.imes.module.infra.api.file.FileApi; +import com.cf.imes.module.infra.api.file.dto.FileCreateReqDTO; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.io.IOException; import java.util.List; +import java.util.Objects; + +import static com.cf.imes.framework.common.exception.enums.GlobalErrorCodeConstants.UNKNOWN; +import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.cf.imes.module.executor.enums.ErrorCodeConstants.PLAN_NOT_EXISTS; /** * @author there */ @Service -public class OptimizePlanServiceImpl implements OptimizePlanService{ +public class OptimizePlanServiceImpl implements OptimizePlanService { @Resource private PlanMapper planMapper; + @Resource + private RemainPlateMapper remainPlateMapper; + + @Resource + private FileApi fileApi; + @Override public List getPlateListByPlanId(Long planId) { return planMapper.selectPlateListByPlanId(planId); } + + @Override + public Boolean addRemain(AddRemainReqVO vo) { + PlanDO planDO = planMapper.selectById(vo.getPlanId()); + if (Objects.isNull(planDO)) { + throw exception(PLAN_NOT_EXISTS); + } + RemainPlateDO remainPlateDO = RemainPlateDO.builder() + .width(vo.getWidth()) + .length(vo.getLength()) + .planId(vo.getPlanId()) + .initPlanId(vo.getPlanId()) + .goodsId(vo.getGoodsId()) + .name(vo.getGoodsName()) + .material(vo.getMaterial()) + .color(vo.getColor()) + .count(vo.getCount()) + .build(); + remainPlateMapper.insert(remainPlateDO); + return Boolean.TRUE; + } + + @Override + public Boolean savePlanPlateResult(SavePlanPlateResult result) { + PlanDO planDO = planMapper.selectById(result.getPlanId()); + if (Objects.isNull(planDO)) { + throw exception(PLAN_NOT_EXISTS); + } + try { + String placeDateFileUrlSource = planDO.getPlaceDateFileUrl(); + String placeOrderFileUrlSource = planDO.getPlaceOrderFileUrl(); + if (StrUtil.isNotBlank(placeDateFileUrlSource)) { + fileApi.deleteFileByPath(placeDateFileUrlSource).checkError(); + } + if (StrUtil.isNotBlank(placeOrderFileUrlSource)) { + fileApi.deleteFileByPath(placeOrderFileUrlSource).checkError(); + } + FileCreateReqDTO fileCreateReqDTO = new FileCreateReqDTO(); + + fileCreateReqDTO.setContent(result.getPlaceData().getBytes()); + String placeDateFileUrl = fileApi.createFile(fileCreateReqDTO).getCheckedData(); + + fileCreateReqDTO.setContent(result.getPlaceOrder().getBytes()); + String placeOrderFileUrl = fileApi.createFile(fileCreateReqDTO).getCheckedData(); + + PlanDO updateDO = PlanDO.builder() + .id(result.getPlanId()) + .placeDateFileUrl(placeOrderFileUrl) + .placeOrderFileUrl(placeDateFileUrl) + .build(); + planMapper.insert(updateDO); + + } catch (IOException e) { + throw exception(UNKNOWN); + } + return Boolean.TRUE; + } + + @Override + public Boolean commit(Long planId) { + PlanDO planDO = planMapper.selectById(planId); + if (Objects.isNull(planDO)) { + throw exception(PLAN_NOT_EXISTS); + } + planMapper.updateById(PlanDO.builder() + .id(planId) + .status(2) + .build()); + return Boolean.TRUE; + } } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plan/PlanMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plan/PlanMapper.xml index 9f8bf6c24..284ff9392 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plan/PlanMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plan/PlanMapper.xml @@ -21,13 +21,13 @@ \ No newline at end of file diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/test/java/com/cf/imes/module/executor/service/zlib/ZlibTest.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/test/java/com/cf/imes/module/executor/service/zlib/ZlibTest.java index f4bad2238..18a14f557 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/test/java/com/cf/imes/module/executor/service/zlib/ZlibTest.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/test/java/com/cf/imes/module/executor/service/zlib/ZlibTest.java @@ -1,23 +1,29 @@ package com.cf.imes.module.executor.service.zlib; +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.io.IoUtil; +import cn.hutool.json.JSONObject; import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.nacos.shaded.io.grpc.netty.shaded.io.netty.handler.codec.compression.JdkZlibDecoder; import com.alibaba.nacos.shaded.io.grpc.netty.shaded.io.netty.handler.codec.compression.ZlibDecoder; import com.cf.imes.module.executor.util.ZLibUtils; import lombok.Data; +import org.apache.commons.io.FileUtils; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.springframework.core.io.Resource; +import org.springframework.http.*; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; +import org.springframework.web.client.RestClientException; +import org.springframework.web.client.RestTemplate; -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.UnsupportedEncodingException; +import java.io.*; +import java.net.URI; import java.sql.PreparedStatement; -import java.util.Base64; -import java.util.List; -import java.util.Objects; +import java.util.*; import java.util.zip.Inflater; public class ZlibTest { @@ -105,4 +111,29 @@ public class ZlibTest { byte[] Data; long CompanyID; } + + @Test + void getRes() throws IOException { + //创建url路径 + String url = "https://chenfeng.tech:777/api/v1/OrderBlockPlan/GetPlanOrderData"; + RestTemplate restTemplate = new RestTemplate(); + HttpHeaders headers = new HttpHeaders(); + MultiValueMap map = new LinkedMultiValueMap<>(); + //接口参数 + map.add("id",1306667105); + //头部类型 + headers.set("Cookie", ".AspNetCore.Cookies=CfDJ8CGzP7BhamtAnTFO8HhkPcxGBkdd4sCOIjQMV-nb37GAFKr4y6C0JA0B3JzRsDAckabiUgBXQaWyDNjCqVTvBNYwbHwVbI5b-eKdXwkIFqsJZObZA-RoLdsu1d9yy1LwBLQwJxDGKTSQzFtrs_eHDeDEuG8CWEF1Iq96X0goR_cFMn0EHWVeRnOlThmDzLkmTMhysVSludR6qV0HrD54GOv5MQvBzzcE-WlsrKTo5Uf0hT8z1fGMY8Hofa6UDh8yyJsz2LFTQTy4NpmklvyXIkwv0fw9bOynHLllUh5ToF0wgrxYFU3Rzgf863uAdtfRP1DY2Rqvf-51uvQHip-SIT_b5p7TaSRiG-M7pZTlI0oOVPZRhng7k-NeIJRdYQmj0h3G3WJHCTH7g1-YQjAGbYQkJFcZdAsZpR-kjOlp3sHpNCDUe0NucYrLNp4tTXesCL_-t8X5GsXMYGlX-oKU10I"); + //构造实体对象 + HttpEntity> param = new HttpEntity<>(map, headers); + //发起请求,服务地址,请求参数,返回消息体的数据类型 + ResponseEntity response = restTemplate.postForEntity(url, param, Resource.class); + //body + InputStream inputStream = response.getBody().getInputStream(); + BufferedOutputStream out = FileUtil.getOutputStream("C:\\Users\\Beal\\Desktop\\新建文件夹\\xx.txt"); + long copySize = IoUtil.copy(inputStream, out, IoUtil.DEFAULT_BUFFER_SIZE); + IoUtil.close(inputStream); + IoUtil.close(out); + + + } } From dd7036314eec2919e72bf64de163cd317766fbbd Mon Sep 17 00:00:00 2001 From: yangsb Date: Tue, 12 Mar 2024 14:17:59 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=E4=BF=9D=E5=AD=98=E4=BC=98=E5=8C=96=E7=BB=93=E6=9E=9C=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/admin/plan/OptimizePlanController.java | 2 ++ .../controller/admin/plan/vo/SavePlanPlateResult.java | 2 ++ .../service/optimizeplan/OptimizePlanServiceImpl.java | 4 +++- 3 files changed, 7 insertions(+), 1 deletion(-) 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 38befdf72..b4ea190a7 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,6 +1,7 @@ package com.cf.imes.module.executor.controller.admin.plan; 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.AddRemainReqVO; import com.cf.imes.module.executor.controller.admin.plan.vo.PlateOptimize; import com.cf.imes.module.executor.controller.admin.plan.vo.SavePlanPlateResult; @@ -46,6 +47,7 @@ public class OptimizePlanController { @PostMapping("savePlanPlateResult") @Operation(summary = "提交保存优化结果文件") + @OperateLog(logArgs = false) @PreAuthorize("@ss.hasPermission('executor:optimize-plate:create')") public CommonResult savePlanPlateResult(SavePlanPlateResult result) { return CommonResult.success(optimizePlanService.savePlanPlateResult(result)); diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/SavePlanPlateResult.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/SavePlanPlateResult.java index 0cd9a266e..c39344f24 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/SavePlanPlateResult.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/vo/SavePlanPlateResult.java @@ -15,9 +15,11 @@ public class SavePlanPlateResult { @Schema(description = "排单id") private Long planId; + @Schema(description = "文件附件", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "文件附件不能为空") private MultipartFile placeOrder; + @Schema(description = "文件附件", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "文件附件不能为空") private MultipartFile placeData; } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java index c4c03583e..8f3c25526 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java @@ -80,9 +80,11 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { FileCreateReqDTO fileCreateReqDTO = new FileCreateReqDTO(); fileCreateReqDTO.setContent(result.getPlaceData().getBytes()); + fileCreateReqDTO.setName(result.getPlaceData().getOriginalFilename()); String placeDateFileUrl = fileApi.createFile(fileCreateReqDTO).getCheckedData(); fileCreateReqDTO.setContent(result.getPlaceOrder().getBytes()); + fileCreateReqDTO.setName(result.getPlaceOrder().getOriginalFilename()); String placeOrderFileUrl = fileApi.createFile(fileCreateReqDTO).getCheckedData(); PlanDO updateDO = PlanDO.builder() @@ -90,7 +92,7 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { .placeDateFileUrl(placeOrderFileUrl) .placeOrderFileUrl(placeDateFileUrl) .build(); - planMapper.insert(updateDO); + planMapper.updateById(updateDO); } catch (IOException e) { throw exception(UNKNOWN); From 6dd9a16a8d8393b4d612e1996da23f819fb505ee Mon Sep 17 00:00:00 2001 From: yangsb Date: Tue, 12 Mar 2024 16:45:55 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=A7=A3=E5=8E=8B?= =?UTF-8?q?=E6=8E=92=E5=8D=95=E7=BB=93=E6=9E=9C=E6=95=B0=E6=8D=AE=E5=8D=95?= =?UTF-8?q?=E5=85=83=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../executor/service/zlib/ZlibTest.java | 33 +- .../service/zlib/order_block_plan_result.json | 3637 +++++++++++++++++ 2 files changed, 3662 insertions(+), 8 deletions(-) create mode 100644 cf-module-prod-executor/cf-module-prod-executor-biz/src/test/java/com/cf/imes/module/executor/service/zlib/order_block_plan_result.json diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/test/java/com/cf/imes/module/executor/service/zlib/ZlibTest.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/test/java/com/cf/imes/module/executor/service/zlib/ZlibTest.java index 18a14f557..6f17088de 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/test/java/com/cf/imes/module/executor/service/zlib/ZlibTest.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/test/java/com/cf/imes/module/executor/service/zlib/ZlibTest.java @@ -23,6 +23,7 @@ import org.springframework.web.client.RestTemplate; import java.io.*; import java.net.URI; import java.sql.PreparedStatement; +import java.time.LocalDateTime; import java.util.*; import java.util.zip.Inflater; @@ -44,14 +45,22 @@ public class ZlibTest { } @Test - void get() throws UnsupportedEncodingException { - /*String source = "xxxxxxxxx"; - byte[] compress = ZLibUtils.compress(source.getBytes()); - System.out.println(compress.length);*/ - List list = jdbcTemplate.query("select * from order_box_block limit 10", new BeanPropertyRowMapper(Bean.class)); - for (Bean bean : list) { + void getOrderBoxBlock() throws UnsupportedEncodingException { + List list = jdbcTemplate.query("select * from order_box_block limit 10", new BeanPropertyRowMapper(OrderBoxBlock.class)); + for (OrderBoxBlock bean : list) { if (!Objects.isNull(bean.Data)) { - System.out.println(new String(ZLibUtils.decompress(new ByteArrayInputStream(Base64.getDecoder().decode(bean.Data))), "utf-8")); + System.out.println(new String(ZLibUtils.decompress(bean.Data))); + System.err.println("------------------------------------------"); + } + } + } + + @Test + void getOrderBlockPlanResult() throws UnsupportedEncodingException { + List list = jdbcTemplate.query("select * from order_block_plan_result limit 1", new BeanPropertyRowMapper(OrderBlockPlanResult.class)); + for (OrderBlockPlanResult bean : list) { + if (!Objects.isNull(bean.PlaceData)) { + System.out.println(new String(ZLibUtils.decompress(bean.PlaceData))); System.err.println("------------------------------------------"); } } @@ -104,7 +113,7 @@ public class ZlibTest { @Data - public static class Bean { + public static class OrderBoxBlock { long BoxID; long ShardKey; long OrderNo; @@ -112,6 +121,14 @@ public class ZlibTest { long CompanyID; } + @Data + public static class OrderBlockPlanResult { + long ID; + LocalDateTime SaveTime; + byte[] PlaceData; + long CompanyID; + } + @Test void getRes() throws IOException { //创建url路径 diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/test/java/com/cf/imes/module/executor/service/zlib/order_block_plan_result.json b/cf-module-prod-executor/cf-module-prod-executor-biz/src/test/java/com/cf/imes/module/executor/service/zlib/order_block_plan_result.json new file mode 100644 index 000000000..7d894303d --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/test/java/com/cf/imes/module/executor/service/zlib/order_block_plan_result.json @@ -0,0 +1,3637 @@ +{ + "OrgData": { + "AreaID": 3755, + "AreaName": "开料机台", + "PlanOrder": { + "ID": 131360, + "WorkAreaID": 3755, + "PlanCode": "O20220701022805", + "CreateTime": "2022-07-27T09:57:25", + "CreatorID": 79, + "State": 0, + "PlanTime": "2022-07-27T09:57:25", + "CompanyID": 818, + "Remark": "", + "IsSelected": true + }, + "MetrialList": [ + { + "OrderNo": "O20220701022805", + "GoodsID": 997, + "GoodsName": "测试", + "Specification": "11", + "Metrial": "188", + "Color": "腾拓9-50#", + "Brank": "11", + "Width": 3000, + "Length": 4000, + "Thickness": 18, + "Border": 3, + "CutDia": 8, + "CutGap": 1, + "IsSorted": true, + "BoardCount": 1, + "MinBoardID": 1, + "MaxBoardID": 1, + "AvgLyr_All": 7.288800000000001, + "AvgLyr_NoLastOne": 7.288800000000001, + "Lyr_LastOne": 7.288800000000001, + "CompanyID": 0, + "UsedBoardMessage": [ + { + "Bi": 1, + "W": 3000, + "L": 4000, + "Si": 0, + "So": "", + "No": "", + "LK": false, + "scrapPts": null, + "scrapBlocks": [] + } + ], + "BlockPlaceMessage": [ + { + "Bi": 1, + "Bo": "220708337474", + "X": 2010, + "Y": 3, + "Pi": 2, + "Ps": 0, + "Ci": 3, + "Ca": 0, + "CP": 0, + "iA": true, + "iO": false, + "W": 0, + "L": 0, + "ZFB": 0, + "YFB": 0, + "SFB": 0, + "XFB": 0, + "Dh": false, + "Dm": false, + "OF": 0, + "type": 0, + "points": [], + "OrgSizeOutOff": { + "left": 0, + "right": 0, + "upper": 0, + "under": 0, + "width": 0, + "length": 0, + "hasDone": true + }, + "SizeOutOff": { + "left": 0, + "right": 0, + "upper": 0, + "under": 0, + "width": 0, + "length": 0, + "hasDone": false + }, + "PlaceOffX": 0, + "PlaceOffY": 0 + }, + { + "Bi": 1, + "Bo": "220708337475", + "X": 3, + "Y": 3, + "Pi": 1, + "Ps": 7, + "Ci": 9, + "Ca": 0, + "CP": 1, + "iA": true, + "iO": false, + "W": 0, + "L": 0, + "ZFB": 0, + "YFB": 0, + "SFB": 0, + "XFB": 0, + "Dh": false, + "Dm": false, + "OF": 0, + "type": 0, + "points": [], + "OrgSizeOutOff": { + "left": 0, + "right": 0, + "upper": 0, + "under": 0, + "width": 0, + "length": 0, + "hasDone": true + }, + "SizeOutOff": { + "left": 0, + "right": 0, + "upper": 0, + "under": 0, + "width": 0, + "length": 0, + "hasDone": false + }, + "PlaceOffX": 0, + "PlaceOffY": 0 + }, + { + "Bi": 1, + "Bo": "220708337476", + "X": 610, + "Y": 1217, + "Pi": 5, + "Ps": 1, + "Ci": 5, + "Ca": 0, + "CP": 2, + "iA": true, + "iO": false, + "W": 0, + "L": 0, + "ZFB": 0, + "YFB": 0, + "SFB": 0, + "XFB": 0, + "Dh": false, + "Dm": false, + "OF": 0, + "type": 0, + "points": [], + "OrgSizeOutOff": { + "left": 0, + "right": 0, + "upper": 0, + "under": 0, + "width": 0, + "length": 0, + "hasDone": true + }, + "SizeOutOff": { + "left": 0, + "right": 0, + "upper": 0, + "under": 0, + "width": 0, + "length": 0, + "hasDone": false + }, + "PlaceOffX": 0, + "PlaceOffY": 0 + }, + { + "Bi": 1, + "Bo": "220708337477", + "X": 1781, + "Y": 2010, + "Pi": 8, + "Ps": 7, + "Ci": 1, + "Ca": 0, + "CP": 3, + "iA": true, + "iO": false, + "W": 0, + "L": 0, + "ZFB": 0, + "YFB": 0, + "SFB": 0, + "XFB": 0, + "Dh": false, + "Dm": false, + "OF": 0, + "type": 0, + "points": [], + "OrgSizeOutOff": { + "left": 0, + "right": 0, + "upper": 0, + "under": 0, + "width": 0, + "length": 0, + "hasDone": true + }, + "SizeOutOff": { + "left": 0, + "right": 0, + "upper": 0, + "under": 0, + "width": 0, + "length": 0, + "hasDone": false + }, + "PlaceOffX": 0, + "PlaceOffY": 0 + }, + { + "Bi": 1, + "Bo": "220708337478", + "X": 610, + "Y": 2431, + "Pi": 9, + "Ps": 0, + "Ci": 2, + "Ca": 0, + "CP": 2, + "iA": true, + "iO": false, + "W": 0, + "L": 0, + "ZFB": 0, + "YFB": 0, + "SFB": 0, + "XFB": 0, + "Dh": false, + "Dm": false, + "OF": 0, + "type": 0, + "points": [], + "OrgSizeOutOff": { + "left": 0, + "right": 0, + "upper": 0, + "under": 0, + "width": 0, + "length": 0, + "hasDone": true + }, + "SizeOutOff": { + "left": 0, + "right": 0, + "upper": 0, + "under": 0, + "width": 0, + "length": 0, + "hasDone": false + }, + "PlaceOffX": 0, + "PlaceOffY": 0 + }, + { + "Bi": 1, + "Bo": "220708337479", + "X": 3, + "Y": 610, + "Pi": 3, + "Ps": 4, + "Ci": 8, + "Ca": 0, + "CP": 0, + "iA": true, + "iO": false, + "W": 0, + "L": 0, + "ZFB": 0, + "YFB": 0, + "SFB": 0, + "XFB": 0, + "Dh": false, + "Dm": false, + "OF": 0, + "type": 0, + "points": [], + "OrgSizeOutOff": { + "left": 0, + "right": 0, + "upper": 0, + "under": 0, + "width": 0, + "length": 0, + "hasDone": true + }, + "SizeOutOff": { + "left": 0, + "right": 0, + "upper": 0, + "under": 0, + "width": 0, + "length": 0, + "hasDone": false + }, + "PlaceOffX": 0, + "PlaceOffY": 0 + }, + { + "Bi": 1, + "Bo": "220708337480", + "X": 3, + "Y": 1781, + "Pi": 6, + "Ps": 0, + "Ci": 6, + "Ca": 0, + "CP": 1, + "iA": true, + "iO": false, + "W": 0, + "L": 0, + "ZFB": 0, + "YFB": 0, + "SFB": 0, + "XFB": 0, + "Dh": false, + "Dm": false, + "OF": 0, + "type": 0, + "points": [], + "OrgSizeOutOff": { + "left": 0, + "right": 0, + "upper": 0, + "under": 0, + "width": 0, + "length": 0, + "hasDone": true + }, + "SizeOutOff": { + "left": 0, + "right": 0, + "upper": 0, + "under": 0, + "width": 0, + "length": 0, + "hasDone": false + }, + "PlaceOffX": 0, + "PlaceOffY": 0 + }, + { + "Bi": 1, + "Bo": "220708337481", + "X": 610, + "Y": 610, + "Pi": 4, + "Ps": 7, + "Ci": 7, + "Ca": 0, + "CP": 3, + "iA": true, + "iO": false, + "W": 0, + "L": 0, + "ZFB": 0, + "YFB": 0, + "SFB": 0, + "XFB": 0, + "Dh": false, + "Dm": false, + "OF": 0, + "type": 0, + "points": [], + "OrgSizeOutOff": { + "left": 0, + "right": 0, + "upper": 0, + "under": 0, + "width": 0, + "length": 0, + "hasDone": true + }, + "SizeOutOff": { + "left": 0, + "right": 0, + "upper": 0, + "under": 0, + "width": 0, + "length": 0, + "hasDone": false + }, + "PlaceOffX": 0, + "PlaceOffY": 0 + }, + { + "Bi": 1, + "Bo": "220708337482", + "X": 610, + "Y": 1824, + "Pi": 7, + "Ps": 1, + "Ci": 4, + "Ca": 0, + "CP": 2, + "iA": true, + "iO": false, + "W": 0, + "L": 0, + "ZFB": 0, + "YFB": 0, + "SFB": 0, + "XFB": 0, + "Dh": false, + "Dm": false, + "OF": 0, + "type": 0, + "points": [], + "OrgSizeOutOff": { + "left": 0, + "right": 0, + "upper": 0, + "under": 0, + "width": 0, + "length": 0, + "hasDone": true + }, + "SizeOutOff": { + "left": 0, + "right": 0, + "upper": 0, + "under": 0, + "width": 0, + "length": 0, + "hasDone": false + }, + "PlaceOffX": 0, + "PlaceOffY": 0 + } + ], + "State": 0, + "HasWave": false, + "OrgWidth": 3000, + "OrgLength": 4000, + "BoardCount_Remain": 0, + "RemainBoardMessage": "[]", + "ScrapBoardList": [] + } + ], + "OrderList": [ + { + "CustomerID": 8014, + "CustomerName": "典佳的店铺", + "CustomerPhone": "15396058598", + "SaleDate": "2022-07-01T10:34:28", + "SalePersonNo": 79, + "Consignee": "1", + "ConsigneePhone": "11111111111", + "ConsigneeAddress": "1", + "OrderState": 4, + "OrderMoney": 140.16, + "Remark": "", + "CustomOrderNo": "", + "DeliveryDate": "2022-07-21T00:00:00", + "PushConfig": false, + "OfferListStr": null, + "CancelState": 0, + "ItemList": null, + "GoodsList": null, + "OfferList": null, + "TotalOrderOfferList": null, + "BlockList": null, + "DataBlockList": null, + "ObjectList": null, + "DataObjectList": null, + "GoodsInfoList": null, + "OrderProcessList": null, + "EditFun": { + "customer": 1 + }, + "SalePerson": "dj", + "OrderNo": 20220701022805, + "CreateTime": "2022-07-01T10:34:28", + "CompanyID": 818, + "SchduleDeliveryDate": "0001-01-01T00:00:00", + "OrderType": 2, + "OrderSort": 0, + "CadDataType": 0, + "Deleted": false, + "ProcessState": null + } + ], + "ConfigList": [ + { + "Type": 1, + "Setting": { + "UseWorkPanelSize": false, + "BoardWidth": 4008, + "BoardLength": 4008, + "BoardSizeList": [ + { + "width": 3800, + "length": 3800, + "name": "未命名", + "isDefault": true + }, + { + "width": 122, + "length": 244, + "name": "未命名", + "isDefault": false + } + ], + "BoardBorder": 3, + "BoardBorder_B": 3, + "CutBorderOff1": 0, + "CutBorderOff2": 0, + "KnifeDia": 6, + "CutGap": 1, + "OriginPointPosition": 0, + "WidthSideAxis": 0, + "LengthSideAxis": 2, + "LocatorPosition": 0, + "UseLocator4Place": false, + "OffsetX_Board1": 0, + "OffsetY_Board1": 0, + "LocatorPosition_Block": 0, + "OffsetX_Block": 0, + "OffsetY_Block": 0, + "scrapBlockSquare": 200, + "srcapBlockWidthMin": 100, + "scrapBlockWidthMax": 600, + "FreeHeight": 40, + "FreeLocationX": 0, + "FreeLocationY": 2440, + "FreeSpeed": 15000, + "WorkStartHeight": 0, + "WorkStartSpeed": 3000, + "WorkStartDistance": 25, + "WorkPreDistance": 5, + "WorkSpeed": 10000, + "WorkCornerSpeed": 3000, + "WorkEndSpeed": 3000, + "WorkEndDistace": 35, + "sameBorderHighSpeed": 0, + "innerCornerDistence": 0, + "innerCornerSpeed": 3000, + "HoleFreeSpeed": 5000, + "HoleFirstDepth": 0, + "HoleFirstSpeed": 800, + "HoleSpeed": 1200, + "ModelSpeed": 8000, + "AllowDoubleHoleFirstSort": true, + "ShowDoubleHoleFirst4Place": false, + "AutoSortingMinWidth": 200, + "FirstCutBorderInFaceB": true, + "TongHoleOnlyOneTime": false, + "TongHoleUseTwoTime": false, + "AllowDoubleSplit": true, + "SplitDepth": 18, + "LimitDouleSplit": false, + "DoubleSplitWidth": 100, + "DoubleSplitLength": 100, + "SplitBlockSeqIds": "", + "UseSecondKnifeBlockWidth": 0, + "UseSecondKnifeBlockLength": 0, + "UseDianZiJuMethod": false, + "DisposeCutBlock": false, + "ThroughModelSkewCutLength": 0, + "UseNewKnifeModule": true, + "KnifeIDForHole": 1, + "Knifes4Hole": "1,", + "ModelKnifeGroup": [], + "KnifeList": [ + { + "KnifeID": 1, + "KnifeName": "T1", + "AxleID": 0, + "AllowCut": true, + "AllowHole": false, + "AllowModel": true, + "AllowPrevRun": false, + "Diameter": 8, + "Diameter2": 0, + "Length": 40, + "GroupType": "", + "OffsetX": 0, + "OffsetY": 0, + "OffsetZ": 0, + "VKnifAngle": 0, + "Speed": 0, + "PushDepthIncres": "", + "RunCode": "", + "SwitchCode": "G80nT0nM15nG79 Z0nM06 T1nM03 S18000nM53nM49n;h1", + "StopCode": "", + "IsAdvanceHole": false, + "RePlaceKnifeID": 0, + "AdvanceHoleCode": "", + "AdvanceHolePoints": [], + "IsAdvanceHoleGroup": false, + "IsOutBlockDown": false + }, + { + "KnifeID": 2, + "KnifeName": "T2", + "AxleID": 0, + "AllowCut": true, + "AllowHole": false, + "AllowModel": true, + "AllowPrevRun": false, + "Diameter": 4, + "Diameter2": 0, + "Length": 40, + "GroupType": "", + "OffsetX": 0, + "OffsetY": 0, + "OffsetZ": 0, + "VKnifAngle": 0, + "Speed": 0, + "PushDepthIncres": "", + "RunCode": "", + "SwitchCode": "G80nT0nM15nG79 Z0nM06 T2nM03 S18000nM53nM49n;h2", + "StopCode": "", + "IsAdvanceHole": false, + "RePlaceKnifeID": 0, + "AdvanceHoleCode": "", + "AdvanceHolePoints": [], + "IsAdvanceHoleGroup": false, + "IsOutBlockDown": false + }, + { + "KnifeID": 3, + "KnifeName": "T3", + "AxleID": 0, + "AllowCut": true, + "AllowHole": false, + "AllowModel": true, + "AllowPrevRun": false, + "Diameter": 6, + "Diameter2": 0, + "Length": 40, + "GroupType": "", + "OffsetX": 0, + "OffsetY": 0, + "OffsetZ": 0, + "VKnifAngle": 0, + "Speed": 0, + "PushDepthIncres": "", + "RunCode": "", + "SwitchCode": "G80nT0nM15nG79 Z0nM06 T3nM03 S18000nM53nM49n;h3", + "StopCode": "", + "IsAdvanceHole": false, + "RePlaceKnifeID": 0, + "AdvanceHoleCode": "", + "AdvanceHolePoints": [], + "IsAdvanceHoleGroup": false, + "IsOutBlockDown": false + }, + { + "KnifeID": 4, + "KnifeName": "T4", + "AxleID": 0, + "AllowCut": true, + "AllowHole": false, + "AllowModel": true, + "AllowPrevRun": false, + "Diameter": 8, + "Diameter2": 0, + "Length": 40, + "GroupType": "", + "OffsetX": 0, + "OffsetY": 0, + "OffsetZ": 0, + "VKnifAngle": 0, + "Speed": 0, + "PushDepthIncres": "", + "RunCode": "", + "SwitchCode": "G80nT0nM15nG79 Z0nM06 T4nM03 S18000nM53nM49n;h4", + "StopCode": "", + "IsAdvanceHole": false, + "RePlaceKnifeID": 0, + "AdvanceHoleCode": "", + "AdvanceHolePoints": [], + "IsAdvanceHoleGroup": false, + "IsOutBlockDown": false + } + ], + "UseHelpCutKnife": false, + "HelpCutKnifeNo": 0, + "HelpCutKnifeDepth": 2, + "HelpCutKnifeWaitingCode": "", + "ExportOrderPathName": "{0}_{1}_{2}", + "ExportBoardPathName": "{0}_{2}_{3}", + "BoardFileA": "{0,#3}_Z.nc", + "BoardFileB": "{0,#3}_F.nc", + "BlockFile": "{0}.nc", + "NcFileHead": "@@function@@nlet pm =obj.thePlaceMetrial; nlet lines = [];nlet filename = `${ (1000 + obj.theBoardID).toFixed(0).substring(1)}_${obj.IsBackFace ?'F':'Z'}`;nlines.push( `;材料名称:${pm.Thickness}mm-${pm.Color}-${pm.Metral} 尺寸:${pm.Width}*${pm.Length}*${pm.Thickness}`);nlines.push( `;程序名:(${filename}-${pm.GoodsName})`);nlines.push( `;板材尺寸:${pm.Width}*${pm.Length}*${pm.Thickness}`);nlines.push( `;BCHD=${pm.Thickness}`);nlines.push( `;M405`);nlines.push( `#@PS=1`);nlines.push( `#@PE=1`);nlines.push( `G90`);nlines.push( `G40`);nlines.push( `G80`);nlines.push( `G79 Z0`);nlines.push( `T0`);nlines.push( `M52`);nlines.push( `(UAO,1)`);nreturn lines.join('rn');", + "NcFileEnd": ";t&nM05nM52nG79 Z0nM405n#@PS=0n#@PE=0nM02n", + "NcFileHead_B": "@@function@@nlet pm =obj.thePlaceMetrial; nlet lines = [];nlet filename = `${ (1000 + obj.theBoardID).toFixed(0).substring(1)}_${obj.IsBackFace ?'F':'Z'}`;nlines.push( `;材料名称:${pm.Thickness}mm-${pm.Color}-${pm.Metral} 尺寸:${pm.Width}*${pm.Length}*${pm.Thickness}`);nlines.push( `;程序名:(${filename}-${pm.GoodsName})`);nlines.push( `;板材尺寸:${pm.Width}*${pm.Length}*${pm.Thickness}`);nlines.push( `;BCHD=${pm.Thickness}`);nlines.push( `;M405`);nlines.push( `#@PS=1`);nlines.push( `#@PE=1`);nlines.push( `G90`);nlines.push( `G40`);nlines.push( `G80`);nlines.push( `G79 Z0`);nlines.push( `T0`);nlines.push( `M52`);nlines.push( `(UAO,1)`);nreturn lines.join('rn');", + "NcFileEnd_B": ";t&nM05nM52nG79 Z0nM405n#@PS=0n#@PE=0nM02n", + "NcFileHead_Block": "@@function@@nlet pm =obj.thePlaceMetrial; nlet lines = [];nlet filename = `${ (1000 + obj.theBoardID).toFixed(0).substring(1)}_${obj.IsBackFace ?'F':'Z'}`;nlines.push( `;材料名称:${pm.Thickness}mm-${pm.Color}-${pm.Metral} 尺寸:${pm.Width}*${pm.Length}*${pm.Thickness}`);nlines.push( `;程序名:(${filename}-${pm.GoodsName})`);nlines.push( `;板材尺寸:${pm.Width}*${pm.Length}*${pm.Thickness}`);nlines.push( `;BCHD=${pm.Thickness}`);nlines.push( `;M405`);nlines.push( `#@PS=1`);nlines.push( `#@PE=1`);nlines.push( `G90`);nlines.push( `G40`);nlines.push( `G80`);nlines.push( `G79 Z0`);nlines.push( `T0`);nlines.push( `M52`);nlines.push( `(UAO,1)`);nreturn lines.join('rn');", + "NcFileEnd_Block": ";t&nM05nM52nG79 Z0nM405n#@PS=0n#@PE=0nM02n", + "RegularBlockFilletCurve": false, + "UnregularBlockFilletCurve": true, + "DealCircleWithIJ": false, + "IsTurnOverG2G3": false, + "ArcLineMaxLength": 0, + "AllowNCComments": false, + "AllowAddGcodeEndChar": false, + "GcodeEndChar": "", + "NcFileIsGB2312": true, + "AllowExportNC_BackFace": true, + "OneBoardFile": false, + "AllowExportNC_block": false, + "AllowExportDataFile": true, + "AllowExportBoardDxf": false, + "isNcSimpleXYZ": false, + "showTwoWorkSpace": false, + "showChooseCutKnife": true, + "showPriorFacing": true, + "showAutoLoadBoard": false, + "showHoleGroup": false, + "showAutoNotePrinter": false, + "showCustomBlockNo": false, + "showMachine": false, + "AllowDoubleWorkSpace": false, + "SameOriginPointPosition": false, + "OffsetX_WorkNum2": 0, + "OffsetY_WorkNum2": 2600, + "OriginPointPosition2": 0, + "WidthSideAxis2": 0, + "LengthSideAxis2": 2, + "LocatorPosition2": 0, + "OffsetX_Board2": 0, + "OffsetY_Board2": 0, + "AllowCombineNCWithDoubleWorkSpace": false, + "CombineNCFileName": "{5}mm_{0}_{1}_{2}_{3}-{4}.nc", + "IsOddNumInWorkSpace1": true, + "IsHoleBlockInSpace1": true, + "NcFileHead_WorkSpace2": "", + "NcFileEnd_WorkSpace2": "", + "NcFileHead_B_WorkSpace2": "", + "NcFileEnd_B_WorkSpace2": "", + "AllowChangeCutKnifeWithThickness": true, + "AllowChangeCutKnifeWidthID": true, + "BoardKnifeList": [ + { + "Thickness": 25, + "KnifeDia": 4 + } + ], + "IsPriorFacing_RoleNum": 5, + "DisPloseHoleRole": false, + "IsIgnore_HolingModeling": true, + "IsForceHoling_MultiSide_Minimum": false, + "IgnoreValue_MultiSide_Minimum": 10, + "IsForceHoling_SingleSide_Minimum": false, + "IgnoreValue_SingleSide_Minimum": 10, + "IsForceHoling_SingleSide_Maximum": false, + "IgnoreValue_SingleSide_Maximum": 2440, + "IsForceHoling_MultiSide_Maximun": false, + "IgnoreValue_MultiSide_Maximun": 1220, + "IsForceHoling_UnRegularBlock": false, + "IsForceHoling_HasModel": false, + "IsIgnore_Modeling": true, + "doModel_hasModel": false, + "doModel_UnRegular": false, + "doModel_twoSmall": false, + "doModel_twoSmall_Value": 10, + "doModel_oneSmall": false, + "doModel_oneSmall_Value": 10, + "doModel_twoBig": false, + "doModel_twoBig_Value": 1220, + "doModel_oneBig": false, + "doModel_oneBig_Value": 2440, + "AllowChangeIgnore": true, + "IsFoceModeling_hasModel": false, + "IsFoceModeling_SameHoling": false, + "IsFoceModeling_MultiLine": false, + "IsForceModeling_Arc": false, + "IsForceModeling_Through": false, + "IsPriorFacing_KaiLiaoMian": false, + "IsPriorFacing_Reverse": false, + "IsPriorFacing_SingleModel": true, + "IsPriorFacing_SingleModel_Front": true, + "IsPriorFacing_DoubleModel": true, + "IsPriorFacing_DoubleModel_Front": true, + "IsPriorFacing_SingleHole": true, + "IsPriorFacing_SingleHole_Front": true, + "IsPriorFacing_BigHole": true, + "IsPriorFacing_BigHole_Front": true, + "IsPriorFacing_DoubleHole": true, + "IsPriorFacing_DoubleHole_More": true, + "IsPriorFacing_CustomFunction": "", + "wr6_OverRun_WdthS": 50, + "wr6_OverRun_WdthE": 1220, + "wr6_OverRun_LengthS": 50, + "wr6_OverRun_LengthE": 2440, + "wr6_OverRun_hasThroghModel": false, + "wr6_OverRun_hasThroghModel_r": 30, + "wr6_OverRun_hasThroghModel_size": 30, + "wr6_OverRun_UnRegular": false, + "wr6_OverRun_MaxChamferR": 0, + "wr6_OverRun_MaxInnerLength": 0, + "wr6_unModel_all": true, + "wr6_unModel_isThrogh": true, + "wr6_unModel_isArc": false, + "wr6_unModel_hasMulLines": false, + "wr6_unModel_checkRadius": false, + "wr6_unModel_isRadius": "", + "wr6_unModel_checkName": false, + "wr6_unModel_isName": "", + "wr6_unModel_checkDepth": false, + "wr6_unModel_isDepth": "", + "wr6_unModel_isVKnifeModel": true, + "wr6_unModel_is3VModell": true, + "wr6_unModel_isLaChao": false, + "wr6_unModel_notLaChao": false, + "wr6_laChao_maxWidth": 50, + "wr6_lachao_minLength": 100, + "wr6_unHole_all": true, + "wr6_unHole_checkRadius": false, + "wr6_unHole_isRadius": "", + "wr6_unHole_checkType": false, + "wr6_unHole_isType": "", + "wr6_unHole_checkDepth": false, + "wr6_unHole_isDepth": "", + "wr6_unHole_isNoHoleKnife": false, + "wr6_dragUndo_m2m": false, + "wr6_dragUndo_m2m_2face": false, + "wr6_dragUndo_m2h": false, + "wr6_dragUndo_m2h_2face": false, + "wr6_dragUndo_h2m": false, + "wr6_dragUndo_h2m_2face": false, + "wr6_dragUndo_h2h": false, + "wr6_dragUndo_h2h_2face": false, + "wr6_cncDo_modelR": false, + "wr6_cncDo_modelR_str": "", + "wr6_cncDo_modelD": false, + "wr6_cncDo_modelD_str": "", + "wr6_cncDo_holeR": false, + "wr6_cncDo_holeR_str": "", + "wr6_cncDo_holeD": false, + "wr6_cncDo_holeD_str": "", + "wr6_doStyle_1Face": 0, + "wr6_doStyle_1Face_hole": true, + "wr6_doStyle_1Face_model": true, + "wr6_doStyle_1Face_face": false, + "wr6_doStyle_1Face_pbm": false, + "wr6_doStyle_2Face": 0, + "wr6_doStyle_2Face_hole": true, + "wr6_doStyle_2Face_model": true, + "wr6_doStyle_2Face_role": "df,cn,mm,bh,mh", + "wr6_turnFace_roleSeq": "df,mm,bh,mh", + "wr6_CustomFun_use": false, + "wr6_CustomFun_text": "let canCheckBlock = false;rnlet canCheckModel = false;rnlet canCheckHole = false;rnlet canDoWith = false;rnlet canSplit = false;rnlet canDoFace = false;rnfunction checkBlock(obj) { return false; }rnfunction checkModel(obj) { return false; }rnfunction checkHole(obj) { return false; }rnfunction doWith(obj) { return; }rnfunction split(obj) { return; }rnfunction doFace(obj) { return false; }rnreturn { canCheckBlock, canCheckModel, canCheckHole, canDoWith, canSplit, canDoFace, checkBlock, checkModel, checkHole, doWith, split, doFace };", + "IsLoadBoardBeforeFileHead": true, + "NcLoadBoard": "", + "NcFileHoleBegin": "", + "NcFileHoleEnd": "", + "HolingByKnifeDia": true, + "NoteAutoPrinter": false, + "NoteNcName": "print_{0}.nc", + "NotePicName": "标签/{0}_{1}.bmp", + "NotePicType": "jpg", + "NotePicBit": "24", + "NotePrintOnFaceA": true, + "NotePositionAvoidHole": true, + "NoteWidth": 60, + "NOteHeight": 40, + "NoteContent": "", + "NotePushInNcFile": false, + "NoteGB2312": false, + "NoteOtherExport": false, + "NoteOtherFun": "", + "AllowBlockNo_Note": false, + "BlockNo_Note": "return obj.BlockNo;", + "BoardName": "{0}_{1}_{2}_{3}", + "MinBlockWidth": 10, + "MinHoleRadius": 1, + "MinHoleDepth": 1, + "MinModelDepth": 0, + "MinModelRadius": 1, + "MaxBorderThickness": 10, + "Ignore2in1SideHole": false, + "Ignore2in1SideHoleGap": 0.01, + "canReloadPlaceInfo": false, + "MiniumSpaceSize": 5, + "NeatenSpaceGap": 0, + "ResetPositionWithLocator": false, + "NcNumberFixNumber": 3, + "NcFileRemoveEmptyLine": false, + "HoleWaitingCode": "", + "prevRunActionCount": 5, + "ShearBorderFaceA": false, + "AllowOppositeDealChuanHole": false, + "DelayDoCountBeforeChangeKnife": 0, + "DelayCodeBeforeChangeKnife": "G04 X2.0", + "UseBoardFaceZ": false, + "PushNcLineIDStr": { + "enable": false, + "beginLine": 0, + "endLine": 0, + "ignoreEmptyLine": false, + "format": "N[4]", + "lineID": 1 + }, + "ManagerPassword": "cftech123456789", + "Remark": "", + "YuLiaoBoardDo2FaceBlock": false, + "WebQueryPageSize": 1000, + "ExportRootPath": "C:", + "AllowSelectExportPath": false, + "AllowExportImage": false, + "ManualSortingCornerWidth": 2, + "dt_Knifes4Hole": 1657768785334 + }, + "MachineID": 3755 + }, + { + "Type": 2, + "Setting": { + "companyID": 0, + "noteName": "标签-宽60mm高40mm", + "width": 480, + "height": 312, + "objects": [ + { + "Type": 4, + "ObjcectID": 0, + "ObjectName": "材质", + "X": 10, + "Y": 50, + "Width": 300, + "Height": 30, + "Visible": true, + "IsScrapBlock": false, + "VisibleExpression": "return true;", + "IsVertical": false, + "DataText": "188腾拓9-50#", + "DataExpression": "return obj.MetrialName+obj.Color;", + "DisplayType": 0, + "BarcodeType": "CODE39", + "FontSize": 30, + "FontWeight": 800, + "FontFamily": "黑体", + "TextAlign": "left", + "TextBaseline": "top", + "QrcodeErrorRate": "M" + }, + { + "Type": 4, + "ObjcectID": 0, + "ObjectName": "柜名", + "X": 10, + "Y": 130, + "Width": 300, + "Height": 30, + "Visible": true, + "IsScrapBlock": false, + "VisibleExpression": "return true;", + "IsVertical": false, + "DataText": "一楼洗手台立板", + "DataExpression": "return obj.BoxName+obj.BlockName+obj.Remark1+obj.Remark2+obj.Remark3+obj.Remark4+obj.Remark5;", + "DisplayType": 0, + "BarcodeType": "CODE39", + "FontSize": 30, + "FontWeight": 800, + "FontFamily": "黑体", + "TextAlign": "left", + "TextBaseline": "top", + "QrcodeErrorRate": "M" + }, + { + "Type": 4, + "ObjcectID": 0, + "ObjectName": "地址", + "X": 198, + "Y": 7, + "Width": 350, + "Height": 30, + "Visible": true, + "IsScrapBlock": false, + "VisibleExpression": "return true;", + "IsVertical": false, + "DataText": "1", + "DataExpression": "return obj.ConsigneeAddress;", + "DisplayType": 0, + "BarcodeType": "CODE39", + "FontSize": 30, + "FontWeight": 800, + "FontFamily": "黑体", + "TextAlign": "left", + "TextBaseline": "top", + "QrcodeErrorRate": "M" + }, + { + "Type": 6, + "ObjcectID": 0, + "ObjectName": "封边图", + "X": 20, + "Y": 210, + "Width": 140, + "Height": 80, + "Visible": true, + "IsScrapBlock": false, + "VisibleExpression": "return true;", + "ShowData": true, + "DataWidth": 15, + "DataFix": 1, + "DisplayFB": -1, + "FontSize": 18, + "FontWeight": 800, + "FontFamily": "黑体", + "ShowCncDict": true, + "CncDictType": 1, + "ShowSideHole": true, + "SideHoleFlag": "#" + }, + { + "Type": 5, + "ObjcectID": 0, + "ObjectName": "位置图", + "X": 200, + "Y": 195, + "Width": 250, + "Height": 100, + "Visible": true, + "IsScrapBlock": false, + "VisibleExpression": "return true;", + "LineHeight": 1, + "LineColor": "rgb(0,0,0)", + "FillColor": "rgb(0,0,0)", + "Angle": 0 + }, + { + "Type": 4, + "ObjcectID": 0, + "ObjectName": "成品尺寸", + "X": 10, + "Y": 90, + "Width": 300, + "Height": 30, + "Visible": true, + "IsScrapBlock": false, + "VisibleExpression": "return true;", + "IsVertical": false, + "DataText": "590*578*18", + "DataExpression": "return obj.CuttingLength + '*' +obj.CuttingWidth+'*'+obj.Thickness;", + "DisplayType": 0, + "BarcodeType": "CODE39", + "FontSize": 30, + "FontWeight": 800, + "FontFamily": "黑体", + "TextAlign": "left", + "TextBaseline": "top", + "QrcodeErrorRate": "M" + }, + { + "Type": 4, + "ObjcectID": 0, + "ObjectName": "板编号", + "X": 10, + "Y": 170, + "Width": 200, + "Height": 25, + "Visible": true, + "IsScrapBlock": false, + "VisibleExpression": "return true;", + "IsVertical": false, + "DataText": "220408120747", + "DataExpression": "return obj.BlockNo;", + "DisplayType": 0, + "BarcodeType": "CODE39", + "FontSize": 25, + "FontWeight": 800, + "FontFamily": "黑体", + "TextAlign": "left", + "TextBaseline": "top", + "QrcodeErrorRate": "M" + }, + { + "Type": 4, + "ObjcectID": 0, + "ObjectName": "页码", + "X": 370, + "Y": 10, + "Width": 100, + "Height": 30, + "Visible": true, + "IsScrapBlock": false, + "VisibleExpression": "return true;", + "IsVertical": false, + "DataText": "1-60", + "DataExpression": "return obj.BoardID + '-' + obj.CutSortID;", + "DisplayType": 0, + "BarcodeType": "CODE39", + "FontSize": 30, + "FontWeight": 800, + "FontFamily": "黑体", + "TextAlign": "left", + "TextBaseline": "top", + "QrcodeErrorRate": "M" + }, + { + "Type": 4, + "ObjcectID": 0, + "ObjectName": "余料板编号", + "X": 330, + "Y": 70, + "Width": 100, + "Height": 100, + "Visible": true, + "IsScrapBlock": true, + "VisibleExpression": "return true;", + "IsVertical": false, + "DataText": "210600495474", + "DataExpression": "return obj.BlockNo;", + "DisplayType": 2, + "BarcodeType": "CODE39", + "FontSize": "40", + "FontWeight": "400", + "FontFamily": "宋体", + "TextAlign": "left", + "TextBaseline": "top", + "QrcodeErrorRate": "M" + }, + { + "Type": 4, + "ObjcectID": 0, + "ObjectName": "余料板尺寸", + "X": 30, + "Y": 13, + "Width": 300, + "Height": 40, + "Visible": true, + "IsScrapBlock": true, + "VisibleExpression": "return true;", + "IsVertical": false, + "DataText": "2178.1*1218.0", + "DataExpression": "return obj.Length.toFixed(1) + '*' + obj.Width.toFixed(1);", + "DisplayType": 0, + "BarcodeType": "CODE39", + "FontSize": "40", + "FontWeight": "400", + "FontFamily": "宋体", + "TextAlign": "left", + "TextBaseline": "top", + "QrcodeErrorRate": "M" + }, + { + "Type": 4, + "ObjcectID": 0, + "ObjectName": "余料板颜色", + "X": 30, + "Y": 99, + "Width": 350, + "Height": 40, + "Visible": true, + "IsScrapBlock": true, + "VisibleExpression": "return true;", + "IsVertical": false, + "DataText": "多层板 世纪冰川", + "DataExpression": "return obj.MetrialName + ' ' + obj.Color ;", + "DisplayType": 0, + "BarcodeType": "CODE39", + "FontSize": "40", + "FontWeight": "400", + "FontFamily": "宋体", + "TextAlign": "left", + "TextBaseline": "top", + "QrcodeErrorRate": "M" + }, + { + "Type": 5, + "ObjcectID": 0, + "ObjectName": "余料板位置图", + "X": 30, + "Y": 145, + "Width": 218, + "Height": 80, + "Visible": true, + "IsScrapBlock": true, + "VisibleExpression": "return true;", + "LineHeight": 1, + "LineColor": "rgb(0,0,0)", + "FillColor": "rgb(0,0,0)", + "Angle": 0 + }, + { + "Type": 4, + "ObjcectID": 0, + "ObjectName": "条码", + "X": 367, + "Y": 109, + "Width": 73, + "Height": 68, + "Visible": true, + "IsScrapBlock": false, + "VisibleExpression": "return true;", + "IsVertical": false, + "DataText": "220408120747", + "DataExpression": "return obj.BlockNo;", + "DisplayType": 2, + "BarcodeType": "CODE128", + "FontSize": "20", + "FontWeight": "400", + "FontFamily": "宋体", + "TextAlign": "left", + "TextBaseline": "top", + "QrcodeErrorRate": "M" + }, + { + "Type": 4, + "ObjcectID": 0, + "ObjectName": "房间分组编号", + "X": 270, + "Y": 69, + "Width": 161, + "Height": 20, + "Visible": true, + "IsScrapBlock": false, + "VisibleExpression": "return true;", + "IsVertical": false, + "DataText": "柜体分组:5-4", + "DataExpression": "return '柜体分组:'+util.groupCount('OrderNo','RoomName','BoxName')+'-' +util.groupNum(obj,'OrderNo','RoomName','BoxName');", + "DisplayType": 0, + "BarcodeType": "CODE39", + "FontSize": "30", + "FontWeight": "600", + "FontFamily": "黑体", + "TextAlign": "left", + "TextBaseline": "top", + "QrcodeErrorRate": "M" + }, + { + "Type": 4, + "ObjcectID": 0, + "ObjectName": "分组数量", + "X": 256, + "Y": 148, + "Width": 60, + "Height": 20, + "Visible": true, + "IsScrapBlock": false, + "VisibleExpression": "return true;", + "IsVertical": false, + "DataText": "分组数量:", + "DataExpression": "return '分组:'+util.groupCount('OrderNo','RoomName','BoxName');", + "DisplayType": 0, + "BarcodeType": "CODE39", + "FontSize": "30", + "FontWeight": "600", + "FontFamily": "黑体", + "TextAlign": "left", + "TextBaseline": "top", + "QrcodeErrorRate": "M" + }, + { + "Type": 4, + "ObjcectID": 0, + "ObjectName": "分组数量", + "X": 242, + "Y": 106, + "Width": 60, + "Height": 20, + "Visible": true, + "IsScrapBlock": false, + "VisibleExpression": "return true;", + "IsVertical": false, + "DataText": "分组数量:", + "DataExpression": "return '分组数量:'+util.groupCount('OrderNo','RoomName','BoxName');", + "DisplayType": 0, + "BarcodeType": "CODE39", + "FontSize": "30", + "FontWeight": "600", + "FontFamily": "黑体", + "TextAlign": "left", + "TextBaseline": "top", + "QrcodeErrorRate": "M" + } + ] + }, + "MachineID": 3755 + }, + { + "Type": 3, + "Setting": { + "BoardBorder": 40, + "GlobalAlpha": 0.95, + "WorkSpaceColor": "#6A6C6B", + "WorkSpaceBorderColor": "#000000", + "ShowAxis": true, + "AxisPos": -10, + "AxisNodeWidth0": 3, + "AxisNodeWidth1": 5, + "AxisNodeWidth2": 10, + "AxisblockFlagWidth": 30, + "AxisColor": "#8a8c8e", + "BlockInfoInAxisFont": "bold 16px arial", + "BlockInfoInAxisColor": "#0000FF", + "BlockInfoInAxisColor2": "#00FF00", + "BoardColor": "#FFFFFF", + "BoardColor2": "#BAE6C7", + "BoardBorderColor": "#000000", + "BlockFillColor": "#FFFFFF", + "BlockFillColor2": "#CFD0D3", + "BlockFillColor_overLap1": "#FF0000", + "BlockFillColor_overLap2": "#f391a9", + "BlockFillColor_draging": "#00FF00", + "BlockFillColor_closest": "#90d7ec", + "BlockBorderColor": "#000000", + "BlockBorderColor2": "#FF0000", + "BlockBorderWidth": 4, + "PointFillColor_draging": "#FF0000", + "PointFillColor_closest": "#0000FF", + "ModelLineColor": "#F90212", + "HoleColor": "#007d65", + "HoleColor2": "#F90212", + "CutPoint_Radius": 6, + "PointFillColor_cutPoint": "#FF0000", + "CutSortID_Radius": 10, + "CutSortID_font": "18px arial", + "CutSortID_color": "#0000FF", + "BlockDirectionShow": true, + "BlockNoShow": true, + "BlockNoColor": "#000000", + "BlockNoFont": "18px arial", + "BlockSizeShow": false, + "BlockSizeColor": "#000000", + "BlockSizeFont": "10px arial", + "ScrapBlockStrokeColor": "black", + "ScrapBlockFocusColor": "#D3F767", + "ScrapPlaceBlock": "#F9F8BE", + "HelpKnifeBlockColor": "#EAE3EE" + }, + "MachineID": 3755 + } + ], + "SourceType": 2, + "BlockList": [ + { + "RoomName": "F-01", + "BoxName": "G-01", + "OrderNo": 20220701022805, + "BlockID": 3847597, + "GoodsID": 997, + "OldBlockID": 3847597, + "BlockNo": "220708337474", + "NoteNo": "", + "BlockName": "左侧板", + "Width": 600, + "Length": 2000, + "Thickness": 18, + "IsHXDJX": false, + "BorderLeft": 1, + "BorderRight": 1, + "BorderUpper": 1, + "BorderUnder": 1, + "Wave": 0, + "PaiKong": 2, + "BorderLengthLight": 0, + "BorderLengthHeavy": 0, + "RemarkJson": [], + "CadDataType": 2, + "ProcessGroupName": "", + "Type": "柜体", + "OpenDoorType": 0, + "ExtraRemark": null, + "ItemID": 7825470 + }, + { + "RoomName": "F-01", + "BoxName": "G-01", + "OrderNo": 20220701022805, + "BlockID": 3847598, + "GoodsID": 997, + "OldBlockID": 3847598, + "BlockNo": "220708337475", + "NoteNo": "", + "BlockName": "右侧板", + "Width": 600, + "Length": 2000, + "Thickness": 18, + "IsHXDJX": false, + "BorderLeft": 1, + "BorderRight": 1, + "BorderUpper": 1, + "BorderUnder": 1, + "Wave": 0, + "PaiKong": 2, + "BorderLengthLight": 0, + "BorderLengthHeavy": 0, + "RemarkJson": "[]", + "CadDataType": 2, + "ProcessGroupName": "", + "Type": "柜体", + "OpenDoorType": 0, + "ExtraRemark": null, + "ItemID": 7825471 + }, + { + "RoomName": "F-01", + "BoxName": "G-01", + "OrderNo": 20220701022805, + "BlockID": 3847599, + "GoodsID": 997, + "OldBlockID": 3847599, + "BlockNo": "220708337476", + "NoteNo": "", + "BlockName": "层板", + "Width": 600, + "Length": 1164, + "Thickness": 18, + "IsHXDJX": false, + "BorderLeft": 1, + "BorderRight": 1, + "BorderUpper": 1, + "BorderUnder": 1, + "Wave": 0, + "PaiKong": 2, + "BorderLengthLight": 0, + "BorderLengthHeavy": 0, + "RemarkJson": "[]", + "CadDataType": 2, + "ProcessGroupName": "", + "Type": "柜体", + "OpenDoorType": 0, + "ExtraRemark": null, + "ItemID": 7825472 + }, + { + "RoomName": "F-01", + "BoxName": "G-01", + "OrderNo": 20220701022805, + "BlockID": 3847600, + "GoodsID": 997, + "OldBlockID": 3847600, + "BlockNo": "220708337477", + "NoteNo": "", + "BlockName": "层板", + "Width": 600, + "Length": 1164, + "Thickness": 18, + "IsHXDJX": false, + "BorderLeft": 1, + "BorderRight": 1, + "BorderUpper": 1, + "BorderUnder": 1, + "Wave": 0, + "PaiKong": 2, + "BorderLengthLight": 0, + "BorderLengthHeavy": 0, + "RemarkJson": "[]", + "CadDataType": 2, + "ProcessGroupName": "", + "Type": "柜体", + "OpenDoorType": 0, + "ExtraRemark": null, + "ItemID": 7825473 + }, + { + "RoomName": "F-01", + "BoxName": "G-01", + "OrderNo": 20220701022805, + "BlockID": 3847601, + "GoodsID": 997, + "OldBlockID": 3847601, + "BlockNo": "220708337478", + "NoteNo": "", + "BlockName": "层板", + "Width": 600, + "Length": 1164, + "Thickness": 18, + "IsHXDJX": false, + "BorderLeft": 1, + "BorderRight": 1, + "BorderUpper": 1, + "BorderUnder": 1, + "Wave": 0, + "PaiKong": 2, + "BorderLengthLight": 0, + "BorderLengthHeavy": 0, + "RemarkJson": "[]", + "CadDataType": 2, + "ProcessGroupName": "", + "Type": "柜体", + "OpenDoorType": 0, + "ExtraRemark": null, + "ItemID": 7825474 + }, + { + "RoomName": "F-01", + "BoxName": "G-01", + "OrderNo": 20220701022805, + "BlockID": 3847602, + "GoodsID": 997, + "OldBlockID": 3847602, + "BlockNo": "220708337479", + "NoteNo": "", + "BlockName": "层板", + "Width": 600, + "Length": 1164, + "Thickness": 18, + "IsHXDJX": false, + "BorderLeft": 1, + "BorderRight": 1, + "BorderUpper": 1, + "BorderUnder": 1, + "Wave": 0, + "PaiKong": 2, + "BorderLengthLight": 0, + "BorderLengthHeavy": 0, + "RemarkJson": "[]", + "CadDataType": 2, + "ProcessGroupName": "", + "Type": "柜体", + "OpenDoorType": 0, + "ExtraRemark": null, + "ItemID": 7825475 + }, + { + "RoomName": "F-01", + "BoxName": "G-01", + "OrderNo": 20220701022805, + "BlockID": 3847603, + "GoodsID": 997, + "OldBlockID": 3847603, + "BlockNo": "220708337480", + "NoteNo": "", + "BlockName": "层板", + "Width": 600, + "Length": 1164, + "Thickness": 18, + "IsHXDJX": false, + "BorderLeft": 1, + "BorderRight": 1, + "BorderUpper": 1, + "BorderUnder": 1, + "Wave": 0, + "PaiKong": 2, + "BorderLengthLight": 0, + "BorderLengthHeavy": 0, + "RemarkJson": "[]", + "CadDataType": 2, + "ProcessGroupName": "", + "Type": "柜体", + "OpenDoorType": 0, + "ExtraRemark": null, + "ItemID": 7825476 + }, + { + "RoomName": "F-01", + "BoxName": "G-01", + "OrderNo": 20220701022805, + "BlockID": 3847604, + "GoodsID": 997, + "OldBlockID": 3847604, + "BlockNo": "220708337481", + "NoteNo": "", + "BlockName": "层板", + "Width": 600, + "Length": 1164, + "Thickness": 18, + "IsHXDJX": false, + "BorderLeft": 1, + "BorderRight": 1, + "BorderUpper": 1, + "BorderUnder": 1, + "Wave": 0, + "PaiKong": 2, + "BorderLengthLight": 0, + "BorderLengthHeavy": 0, + "RemarkJson": "[]", + "CadDataType": 2, + "ProcessGroupName": "", + "Type": "柜体", + "OpenDoorType": 0, + "ExtraRemark": null, + "ItemID": 7825477 + }, + { + "RoomName": "F-01", + "BoxName": "G-01", + "OrderNo": 20220701022805, + "BlockID": 3847605, + "GoodsID": 997, + "OldBlockID": 3847605, + "BlockNo": "220708337482", + "NoteNo": "", + "BlockName": "层板", + "Width": 600, + "Length": 1164, + "Thickness": 18, + "IsHXDJX": false, + "BorderLeft": 1, + "BorderRight": 1, + "BorderUpper": 1, + "BorderUnder": 1, + "Wave": 0, + "PaiKong": 2, + "BorderLengthLight": 0, + "BorderLengthHeavy": 0, + "RemarkJson": "[]", + "CadDataType": 2, + "ProcessGroupName": "", + "Type": "柜体", + "OpenDoorType": 0, + "ExtraRemark": null, + "ItemID": 7825478 + } + ], + "BlockDetailList": [ + { + "ID": 3847597, + "OrderNo": 20220701022805, + "PointDetail": [], + "ModelDetail": [], + "HoleDetail": [ + { + "HoleID": 1, + "HoleType": 10, + "Face": 0, + "PointX": 49, + "PointY": 1335.3333333333335, + "PointZ": -18, + "Radius": 5, + "Depth": 13.5, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 2, + "HoleType": 10, + "Face": 0, + "PointX": 549, + "PointY": 1335.3333333333335, + "PointZ": -18, + "Radius": 5, + "Depth": 13.5, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 3, + "HoleType": 10, + "Face": 0, + "PointX": 81, + "PointY": 1335.3333333333335, + "PointZ": -46, + "Radius": 4, + "Depth": 13, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 4, + "HoleType": 10, + "Face": 0, + "PointX": 517, + "PointY": 1335.3333333333335, + "PointZ": -46, + "Radius": 4, + "Depth": 13, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 5, + "HoleType": 10, + "Face": 0, + "PointX": 49.00000000000004, + "PointY": 1671.6666666666667, + "PointZ": -18, + "Radius": 1.05, + "Depth": 14.5, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 6, + "HoleType": 10, + "Face": 0, + "PointX": 549, + "PointY": 1671.6666666666667, + "PointZ": -18, + "Radius": 1.05, + "Depth": 14.5, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 7, + "HoleType": 10, + "Face": 0, + "PointX": 49, + "PointY": 999.0000000000001, + "PointZ": -18, + "Radius": 1.5, + "Depth": 9, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 8, + "HoleType": 10, + "Face": 0, + "PointX": 549, + "PointY": 999.0000000000001, + "PointZ": -18, + "Radius": 1.5, + "Depth": 9, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 9, + "HoleType": 10, + "Face": 0, + "PointX": 35.50000000000009, + "PointY": 326.33333333333337, + "PointZ": -18, + "Radius": 3.5999999999999996, + "Depth": 9, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 10, + "HoleType": 10, + "Face": 0, + "PointX": 535.5000000000001, + "PointY": 326.33333333333337, + "PointZ": -18, + "Radius": 3.5999999999999996, + "Depth": 9, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 11, + "HoleType": 10, + "Face": 0, + "PointX": 49, + "PointY": 1839.833333333333, + "PointZ": -18, + "Radius": 2.5, + "Depth": 12, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 12, + "HoleType": 10, + "Face": 0, + "PointX": 549, + "PointY": 1839.833333333333, + "PointZ": -18, + "Radius": 2.5, + "Depth": 12, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 13, + "HoleType": 10, + "Face": 0, + "PointX": 199, + "PointY": 158.16666666666666, + "PointZ": -18, + "Radius": 3, + "Depth": 13, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 14, + "HoleType": 10, + "Face": 0, + "PointX": 399, + "PointY": 158.16666666666666, + "PointZ": -18, + "Radius": 3, + "Depth": 13, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 15, + "HoleType": 10, + "Face": 0, + "PointX": 231, + "PointY": 158.16666666666666, + "PointZ": -56, + "Radius": 5, + "Depth": 13, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 16, + "HoleType": 10, + "Face": 0, + "PointX": 367, + "PointY": 158.16666666666666, + "PointZ": -56, + "Radius": 5, + "Depth": 13, + "EndPoint": "", + "Angle": 0 + } + ], + "OffSet": { + "x": 1, + "y": 1, + "z": 0 + }, + "NewVersion": false, + "OrgPointDetail": [], + "KaiLiaoSize": { + "width": 598, + "height": 1998 + }, + "SideModelDetail": [], + "SideHoleDetail": [] + }, + { + "ID": 3847598, + "OrderNo": 20220701022805, + "PointDetail": [], + "ModelDetail": [], + "HoleDetail": [ + { + "HoleID": 1, + "HoleType": 10, + "Face": 1, + "PointX": 49, + "PointY": 1335.3333333333335, + "PointZ": 0, + "Radius": 5, + "Depth": 13.5, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 2, + "HoleType": 10, + "Face": 1, + "PointX": 549, + "PointY": 1335.3333333333335, + "PointZ": 0, + "Radius": 5, + "Depth": 13.5, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 3, + "HoleType": 10, + "Face": 1, + "PointX": 81, + "PointY": 1335.3333333333335, + "PointZ": 28, + "Radius": 4, + "Depth": 13, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 4, + "HoleType": 10, + "Face": 1, + "PointX": 517, + "PointY": 1335.3333333333335, + "PointZ": 28, + "Radius": 4, + "Depth": 13, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 5, + "HoleType": 10, + "Face": 1, + "PointX": 49.00000000000004, + "PointY": 1671.6666666666667, + "PointZ": 0, + "Radius": 1.05, + "Depth": 14.5, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 6, + "HoleType": 10, + "Face": 1, + "PointX": 549, + "PointY": 1671.6666666666667, + "PointZ": 0, + "Radius": 1.05, + "Depth": 14.5, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 7, + "HoleType": 10, + "Face": 1, + "PointX": 49, + "PointY": 999.0000000000001, + "PointZ": 0, + "Radius": 1.5, + "Depth": 9, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 8, + "HoleType": 10, + "Face": 1, + "PointX": 549, + "PointY": 999.0000000000001, + "PointZ": 0, + "Radius": 1.5, + "Depth": 9, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 9, + "HoleType": 10, + "Face": 1, + "PointX": 35.50000000000009, + "PointY": 326.33333333333337, + "PointZ": 0, + "Radius": 3.5999999999999996, + "Depth": 9, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 10, + "HoleType": 10, + "Face": 1, + "PointX": 535.5000000000001, + "PointY": 326.33333333333337, + "PointZ": 0, + "Radius": 3.5999999999999996, + "Depth": 9, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 11, + "HoleType": 10, + "Face": 1, + "PointX": 49, + "PointY": 1839.833333333333, + "PointZ": 0, + "Radius": 2.5, + "Depth": 12, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 12, + "HoleType": 10, + "Face": 1, + "PointX": 549, + "PointY": 1839.833333333333, + "PointZ": 0, + "Radius": 2.5, + "Depth": 12, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 13, + "HoleType": 10, + "Face": 1, + "PointX": 199, + "PointY": 158.16666666666666, + "PointZ": 0, + "Radius": 3, + "Depth": 13, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 14, + "HoleType": 10, + "Face": 1, + "PointX": 399, + "PointY": 158.16666666666666, + "PointZ": 0, + "Radius": 3, + "Depth": 13, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 15, + "HoleType": 10, + "Face": 1, + "PointX": 231, + "PointY": 158.16666666666666, + "PointZ": 38, + "Radius": 5, + "Depth": 13, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 16, + "HoleType": 10, + "Face": 1, + "PointX": 367, + "PointY": 158.16666666666666, + "PointZ": 38, + "Radius": 5, + "Depth": 13, + "EndPoint": "", + "Angle": 0 + } + ], + "OffSet": { + "x": 1, + "y": 1, + "z": 0 + }, + "NewVersion": false, + "OrgPointDetail": [], + "KaiLiaoSize": { + "width": 598, + "height": 1998 + }, + "SideModelDetail": [], + "SideHoleDetail": [] + }, + { + "ID": 3847599, + "OrderNo": 20220701022805, + "PointDetail": [], + "ModelDetail": [], + "HoleDetail": [], + "OffSet": { + "x": 1, + "y": 1, + "z": 0 + }, + "NewVersion": false, + "OrgPointDetail": [], + "KaiLiaoSize": { + "width": 598, + "height": 1162 + }, + "SideModelDetail": [], + "SideHoleDetail": [ + { + "HoleID": 1, + "HoleType": 10, + "Face": 2, + "PointX": 200, + "PointY": 1164, + "PointZ": -9, + "Radius": 3, + "Depth": 18.09999999999991, + "EndPoint": "", + "PointX2": 200, + "PointY2": 1145.9 + }, + { + "HoleID": 2, + "HoleType": 10, + "Face": 2, + "PointX": 400, + "PointY": 1164, + "PointZ": -9, + "Radius": 3, + "Depth": 18.09999999999991, + "EndPoint": "", + "PointX2": 400, + "PointY2": 1145.9 + }, + { + "HoleID": 3, + "HoleType": 10, + "Face": 0, + "PointX": 200, + "PointY": -1.3877787807814457e-17, + "PointZ": -9, + "Radius": 3, + "Depth": 18.1, + "EndPoint": "", + "PointX2": 200, + "PointY2": 18.1 + }, + { + "HoleID": 4, + "HoleType": 10, + "Face": 0, + "PointX": 400, + "PointY": -1.3877787807814457e-17, + "PointZ": -9, + "Radius": 3, + "Depth": 18.1, + "EndPoint": "", + "PointX2": 400, + "PointY2": 18.1 + } + ] + }, + { + "ID": 3847600, + "OrderNo": 20220701022805, + "PointDetail": [], + "ModelDetail": [], + "HoleDetail": [ + { + "HoleID": 1, + "HoleType": 0, + "Face": 1, + "PointX": 49, + "PointY": 1129, + "PointZ": -13.5, + "Radius": 7.5, + "Depth": 13.5, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 2, + "HoleType": 0, + "Face": 1, + "PointX": 549, + "PointY": 1129, + "PointZ": -13.5, + "Radius": 7.5, + "Depth": 13.5, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 3, + "HoleType": 0, + "Face": 1, + "PointX": 49, + "PointY": 33, + "PointZ": -13.5, + "Radius": 7.5, + "Depth": 13.5, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 4, + "HoleType": 0, + "Face": 1, + "PointX": 549, + "PointY": 33, + "PointZ": -13.5, + "Radius": 7.5, + "Depth": 13.5, + "EndPoint": "", + "Angle": 0 + } + ], + "OffSet": { + "x": 1, + "y": 1, + "z": 0 + }, + "NewVersion": false, + "OrgPointDetail": [], + "KaiLiaoSize": { + "width": 598, + "height": 1162 + }, + "SideModelDetail": [], + "SideHoleDetail": [ + { + "HoleID": 1, + "HoleType": 10, + "Face": 2, + "PointX": 50, + "PointY": 1164, + "PointZ": -9, + "Radius": 4, + "Depth": 34.09999999999991, + "EndPoint": "", + "PointX2": 50, + "PointY2": 1129.9 + }, + { + "HoleID": 2, + "HoleType": 10, + "Face": 2, + "PointX": 550, + "PointY": 1164, + "PointZ": -9, + "Radius": 4, + "Depth": 34.09999999999991, + "EndPoint": "", + "PointX2": 550, + "PointY2": 1129.9 + }, + { + "HoleID": 3, + "HoleType": 10, + "Face": 2, + "PointX": 82, + "PointY": 1164, + "PointZ": -9, + "Radius": 4, + "Depth": 28.09999999999991, + "EndPoint": "", + "PointX2": 82, + "PointY2": 1135.9 + }, + { + "HoleID": 4, + "HoleType": 10, + "Face": 2, + "PointX": 518, + "PointY": 1164, + "PointZ": -9, + "Radius": 4, + "Depth": 28.09999999999991, + "EndPoint": "", + "PointX2": 518, + "PointY2": 1135.9 + }, + { + "HoleID": 5, + "HoleType": 10, + "Face": 0, + "PointX": 50, + "PointY": 0, + "PointZ": -9, + "Radius": 4, + "Depth": 34.1, + "EndPoint": "", + "PointX2": 50, + "PointY2": 34.1 + }, + { + "HoleID": 6, + "HoleType": 10, + "Face": 0, + "PointX": 550, + "PointY": 0, + "PointZ": -9, + "Radius": 4, + "Depth": 34.1, + "EndPoint": "", + "PointX2": 550, + "PointY2": 34.1 + }, + { + "HoleID": 7, + "HoleType": 10, + "Face": 0, + "PointX": 82, + "PointY": 0, + "PointZ": -9, + "Radius": 4, + "Depth": 28.1, + "EndPoint": "", + "PointX2": 82, + "PointY2": 28.1 + }, + { + "HoleID": 8, + "HoleType": 10, + "Face": 0, + "PointX": 518, + "PointY": 0, + "PointZ": -9, + "Radius": 4, + "Depth": 28.1, + "EndPoint": "", + "PointX2": 518, + "PointY2": 28.1 + } + ] + }, + { + "ID": 3847601, + "OrderNo": 20220701022805, + "PointDetail": [], + "ModelDetail": [], + "HoleDetail": [], + "OffSet": { + "x": 1, + "y": 1, + "z": 0 + }, + "NewVersion": false, + "OrgPointDetail": [], + "KaiLiaoSize": { + "width": 598, + "height": 1162 + }, + "SideModelDetail": [], + "SideHoleDetail": [ + { + "HoleID": 1, + "HoleType": 10, + "Face": 2, + "PointX": 50.00000000000004, + "PointY": 1164, + "PointZ": -8.999999999999954, + "Radius": 1.05, + "Depth": 14.5, + "EndPoint": "", + "PointX2": 50.00000000000004, + "PointY2": 1149.5 + }, + { + "HoleID": 2, + "HoleType": 10, + "Face": 2, + "PointX": 550, + "PointY": 1164, + "PointZ": -8.999999999999954, + "Radius": 1.05, + "Depth": 14.5, + "EndPoint": "", + "PointX2": 550, + "PointY2": 1149.5 + }, + { + "HoleID": 3, + "HoleType": 10, + "Face": 0, + "PointX": 50.00000000000004, + "PointY": 0, + "PointZ": -8.999999999999954, + "Radius": 1.05, + "Depth": 14.5, + "EndPoint": "", + "PointX2": 50.00000000000004, + "PointY2": 14.5 + }, + { + "HoleID": 4, + "HoleType": 10, + "Face": 0, + "PointX": 550, + "PointY": 0, + "PointZ": -8.999999999999954, + "Radius": 1.05, + "Depth": 14.5, + "EndPoint": "", + "PointX2": 550, + "PointY2": 14.5 + } + ] + }, + { + "ID": 3847602, + "OrderNo": 20220701022805, + "PointDetail": [], + "ModelDetail": [ + { + "ModelID": 1, + "LineID": 1, + "Face": 1, + "KnifeName": "", + "KnifeRadius": 2.5, + "Depth": 14, + "PointList": [ + { + "LineID": 1, + "PointID": 1, + "PointX": 44.5, + "PointY": 1161, + "Radius": 0, + "Depth": 14, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 2, + "PointX": 53.5, + "PointY": 1161, + "Radius": 0, + "Depth": 14, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 3, + "PointX": 53.5, + "PointY": 1163, + "Radius": 0, + "Depth": 14, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 4, + "PointX": 44.5, + "PointY": 1163, + "Radius": 0, + "Depth": 14, + "Curve": 0 + }, + { + "LineID": 1, + "PointID": 5, + "PointX": 44.5, + "PointY": 1161, + "Radius": 0, + "Depth": 14, + "Curve": 0 + } + ], + "OffsetList": [], + "OriginModeling": { + "outline": { + "pts": [ + { + "x": 43, + "y": 1159.5 + }, + { + "x": 43, + "y": 1164 + }, + { + "x": 57, + "y": 1164 + }, + { + "x": 57, + "y": 1159.5 + }, + { + "x": 43, + "y": 1159.5 + } + ], + "buls": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "holes": [], + "thickness": 0, + "dir": 0, + "knifeRadius": 0, + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + } + }, + { + "ModelID": 2, + "LineID": 2, + "Face": 1, + "KnifeName": "", + "KnifeRadius": 2.5, + "Depth": 14, + "PointList": [ + { + "LineID": 2, + "PointID": 1, + "PointX": 544.5, + "PointY": 1161, + "Radius": 0, + "Depth": 14, + "Curve": 0 + }, + { + "LineID": 2, + "PointID": 2, + "PointX": 553.5, + "PointY": 1161, + "Radius": 0, + "Depth": 14, + "Curve": 0 + }, + { + "LineID": 2, + "PointID": 3, + "PointX": 553.5, + "PointY": 1163, + "Radius": 0, + "Depth": 14, + "Curve": 0 + }, + { + "LineID": 2, + "PointID": 4, + "PointX": 544.5, + "PointY": 1163, + "Radius": 0, + "Depth": 14, + "Curve": 0 + }, + { + "LineID": 2, + "PointID": 5, + "PointX": 544.5, + "PointY": 1161, + "Radius": 0, + "Depth": 14, + "Curve": 0 + } + ], + "OffsetList": [], + "OriginModeling": { + "outline": { + "pts": [ + { + "x": 543, + "y": 1159.5 + }, + { + "x": 543, + "y": 1164 + }, + { + "x": 557, + "y": 1164 + }, + { + "x": 557, + "y": 1159.5 + }, + { + "x": 543, + "y": 1159.5 + } + ], + "buls": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "holes": [], + "thickness": 0, + "dir": 0, + "knifeRadius": 0, + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + } + }, + { + "ModelID": 3, + "LineID": 3, + "Face": 1, + "KnifeName": "", + "KnifeRadius": 2.5, + "Depth": 14, + "PointList": [ + { + "LineID": 3, + "PointID": 1, + "PointX": 44.5, + "PointY": -1, + "Radius": 0, + "Depth": 14, + "Curve": 0 + }, + { + "LineID": 3, + "PointID": 2, + "PointX": 53.5, + "PointY": -1, + "Radius": 0, + "Depth": 14, + "Curve": 0 + }, + { + "LineID": 3, + "PointID": 3, + "PointX": 53.5, + "PointY": 1, + "Radius": 0, + "Depth": 14, + "Curve": 0 + }, + { + "LineID": 3, + "PointID": 4, + "PointX": 44.5, + "PointY": 1, + "Radius": 0, + "Depth": 14, + "Curve": 0 + }, + { + "LineID": 3, + "PointID": 5, + "PointX": 44.5, + "PointY": -1, + "Radius": 0, + "Depth": 14, + "Curve": 0 + } + ], + "OffsetList": [], + "OriginModeling": { + "outline": { + "pts": [ + { + "x": 43, + "y": 4.5 + }, + { + "x": 57, + "y": 4.5 + }, + { + "x": 57, + "y": 0 + }, + { + "x": 43, + "y": 0 + }, + { + "x": 43, + "y": 4.5 + } + ], + "buls": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "holes": [], + "thickness": 0, + "dir": 0, + "knifeRadius": 0, + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + } + }, + { + "ModelID": 4, + "LineID": 4, + "Face": 1, + "KnifeName": "", + "KnifeRadius": 2.5, + "Depth": 14, + "PointList": [ + { + "LineID": 4, + "PointID": 1, + "PointX": 544.5, + "PointY": -1, + "Radius": 0, + "Depth": 14, + "Curve": 0 + }, + { + "LineID": 4, + "PointID": 2, + "PointX": 553.5, + "PointY": -1, + "Radius": 0, + "Depth": 14, + "Curve": 0 + }, + { + "LineID": 4, + "PointID": 3, + "PointX": 553.5, + "PointY": 1, + "Radius": 0, + "Depth": 14, + "Curve": 0 + }, + { + "LineID": 4, + "PointID": 4, + "PointX": 544.5, + "PointY": 1, + "Radius": 0, + "Depth": 14, + "Curve": 0 + }, + { + "LineID": 4, + "PointID": 5, + "PointX": 544.5, + "PointY": -1, + "Radius": 0, + "Depth": 14, + "Curve": 0 + } + ], + "OffsetList": [], + "OriginModeling": { + "outline": { + "pts": [ + { + "x": 543, + "y": 4.5 + }, + { + "x": 557, + "y": 4.5 + }, + { + "x": 557, + "y": 0 + }, + { + "x": 543, + "y": 0 + }, + { + "x": 543, + "y": 4.5 + } + ], + "buls": [ + 0, + 0, + 0, + 0, + 0 + ] + }, + "holes": [], + "thickness": 0, + "dir": 0, + "knifeRadius": 0, + "addLen": 0, + "addWidth": 0, + "addDepth": 0 + } + } + ], + "HoleDetail": [ + { + "HoleID": 1, + "HoleType": 10, + "Face": 1, + "PointX": 42.25, + "PointY": 1153, + "PointZ": 0, + "Radius": 2.5, + "Depth": 11, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 2, + "HoleType": 10, + "Face": 1, + "PointX": 55.75, + "PointY": 1153, + "PointZ": 0, + "Radius": 2.5, + "Depth": 11, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 3, + "HoleType": 10, + "Face": 1, + "PointX": 542.25, + "PointY": 1153, + "PointZ": 0, + "Radius": 2.5, + "Depth": 11, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 4, + "HoleType": 10, + "Face": 1, + "PointX": 555.75, + "PointY": 1153, + "PointZ": 0, + "Radius": 2.5, + "Depth": 11, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 5, + "HoleType": 10, + "Face": 1, + "PointX": 42.25, + "PointY": 9, + "PointZ": 0, + "Radius": 2.5, + "Depth": 11, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 6, + "HoleType": 10, + "Face": 1, + "PointX": 55.75, + "PointY": 9, + "PointZ": 0, + "Radius": 2.5, + "Depth": 11, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 7, + "HoleType": 10, + "Face": 1, + "PointX": 542.25, + "PointY": 9, + "PointZ": 0, + "Radius": 2.5, + "Depth": 11, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 8, + "HoleType": 10, + "Face": 1, + "PointX": 555.75, + "PointY": 9, + "PointZ": 0, + "Radius": 2.5, + "Depth": 11, + "EndPoint": "", + "Angle": 0 + } + ], + "OffSet": { + "x": 1, + "y": 1, + "z": 0 + }, + "NewVersion": false, + "OrgPointDetail": [], + "KaiLiaoSize": { + "width": 598, + "height": 1162 + }, + "SideModelDetail": [], + "SideHoleDetail": [] + }, + { + "ID": 3847603, + "OrderNo": 20220701022805, + "PointDetail": [], + "ModelDetail": [], + "HoleDetail": [], + "OffSet": { + "x": 1, + "y": 1, + "z": 0 + }, + "NewVersion": false, + "OrgPointDetail": [], + "KaiLiaoSize": { + "width": 598, + "height": 1162 + }, + "SideModelDetail": [], + "SideHoleDetail": [ + { + "HoleID": 1, + "HoleType": 10, + "Face": 2, + "PointX": 50, + "PointY": 1164, + "PointZ": -9, + "Radius": 4, + "Depth": 34, + "EndPoint": "", + "PointX2": 50, + "PointY2": 1130 + }, + { + "HoleID": 2, + "HoleType": 10, + "Face": 2, + "PointX": 550, + "PointY": 1164, + "PointZ": -9, + "Radius": 4, + "Depth": 34, + "EndPoint": "", + "PointX2": 550, + "PointY2": 1130 + }, + { + "HoleID": 3, + "HoleType": 10, + "Face": 0, + "PointX": 50, + "PointY": 0, + "PointZ": -9, + "Radius": 4, + "Depth": 34, + "EndPoint": "", + "PointX2": 50, + "PointY2": 34 + }, + { + "HoleID": 4, + "HoleType": 10, + "Face": 0, + "PointX": 550, + "PointY": 0, + "PointZ": -9, + "Radius": 4, + "Depth": 34, + "EndPoint": "", + "PointX2": 550, + "PointY2": 34 + } + ] + }, + { + "ID": 3847604, + "OrderNo": 20220701022805, + "PointDetail": [], + "ModelDetail": [], + "HoleDetail": [ + { + "HoleID": 1, + "HoleType": 0, + "Face": 1, + "PointX": 49, + "PointY": 1153, + "PointZ": -13.5, + "Radius": 10, + "Depth": 13.5, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 2, + "HoleType": 0, + "Face": 1, + "PointX": 549, + "PointY": 1153, + "PointZ": -13.5, + "Radius": 10, + "Depth": 13.5, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 3, + "HoleType": 0, + "Face": 1, + "PointX": 49, + "PointY": 9, + "PointZ": -13.5, + "Radius": 10, + "Depth": 13.5, + "EndPoint": "", + "Angle": 0 + }, + { + "HoleID": 4, + "HoleType": 0, + "Face": 1, + "PointX": 549, + "PointY": 9, + "PointZ": -13.5, + "Radius": 10, + "Depth": 13.5, + "EndPoint": "", + "Angle": 0 + } + ], + "OffSet": { + "x": 1, + "y": 1, + "z": 0 + }, + "NewVersion": false, + "OrgPointDetail": [], + "KaiLiaoSize": { + "width": 598, + "height": 1162 + }, + "SideModelDetail": [], + "SideHoleDetail": [ + { + "HoleID": 1, + "HoleType": 10, + "Face": 2, + "PointX": 50, + "PointY": 1164, + "PointZ": -9, + "Radius": 4, + "Depth": 10.099999999999909, + "EndPoint": "", + "PointX2": 50, + "PointY2": 1153.9 + }, + { + "HoleID": 2, + "HoleType": 10, + "Face": 2, + "PointX": 550, + "PointY": 1164, + "PointZ": -9, + "Radius": 4, + "Depth": 10.099999999999909, + "EndPoint": "", + "PointX2": 550, + "PointY2": 1153.9 + }, + { + "HoleID": 3, + "HoleType": 10, + "Face": 0, + "PointX": 50, + "PointY": -1.3877787807814457e-17, + "PointZ": -9, + "Radius": 4, + "Depth": 10.1, + "EndPoint": "", + "PointX2": 50, + "PointY2": 10.1 + }, + { + "HoleID": 4, + "HoleType": 10, + "Face": 0, + "PointX": 550, + "PointY": -1.3877787807814457e-17, + "PointZ": -9, + "Radius": 4, + "Depth": 10.1, + "EndPoint": "", + "PointX2": 550, + "PointY2": 10.1 + } + ] + }, + { + "ID": 3847605, + "OrderNo": 20220701022805, + "PointDetail": [], + "ModelDetail": [], + "HoleDetail": [], + "OffSet": { + "x": 1, + "y": 1, + "z": 0 + }, + "NewVersion": false, + "OrgPointDetail": [], + "KaiLiaoSize": { + "width": 598, + "height": 1162 + }, + "SideModelDetail": [], + "SideHoleDetail": [ + { + "HoleID": 1, + "HoleType": 10, + "Face": 2, + "PointX": 200, + "PointY": 1164, + "PointZ": -9, + "Radius": 3, + "Depth": 18.09999999999991, + "EndPoint": "", + "PointX2": 200, + "PointY2": 1145.9 + }, + { + "HoleID": 2, + "HoleType": 10, + "Face": 2, + "PointX": 400, + "PointY": 1164, + "PointZ": -9, + "Radius": 3, + "Depth": 18.09999999999991, + "EndPoint": "", + "PointX2": 400, + "PointY2": 1145.9 + }, + { + "HoleID": 3, + "HoleType": 10, + "Face": 2, + "PointX": 232, + "PointY": 1164, + "PointZ": -9, + "Radius": 5, + "Depth": 38.09999999999991, + "EndPoint": "", + "PointX2": 232, + "PointY2": 1125.9 + }, + { + "HoleID": 4, + "HoleType": 10, + "Face": 2, + "PointX": 368, + "PointY": 1164, + "PointZ": -9, + "Radius": 5, + "Depth": 38.09999999999991, + "EndPoint": "", + "PointX2": 368, + "PointY2": 1125.9 + }, + { + "HoleID": 5, + "HoleType": 10, + "Face": 0, + "PointX": 200, + "PointY": -1.3877787807814457e-17, + "PointZ": -9, + "Radius": 3, + "Depth": 18.1, + "EndPoint": "", + "PointX2": 200, + "PointY2": 18.1 + }, + { + "HoleID": 6, + "HoleType": 10, + "Face": 0, + "PointX": 400, + "PointY": -1.3877787807814457e-17, + "PointZ": -9, + "Radius": 3, + "Depth": 18.1, + "EndPoint": "", + "PointX2": 400, + "PointY2": 18.1 + }, + { + "HoleID": 7, + "HoleType": 10, + "Face": 0, + "PointX": 232, + "PointY": 1.7763568394002505e-15, + "PointZ": -9, + "Radius": 5, + "Depth": 38.1, + "EndPoint": "", + "PointX2": 232, + "PointY2": 38.1 + }, + { + "HoleID": 8, + "HoleType": 10, + "Face": 0, + "PointX": 368, + "PointY": 1.7763568394002505e-15, + "PointZ": -9, + "Radius": 5, + "Depth": 38.1, + "EndPoint": "", + "PointX2": 368, + "PointY2": 38.1 + } + ] + } + ] + }, + "PlaceResult": [ + { + "OrderNo": "O20220701022805", + "GoodsID": 997, + "GoodsName": "测试", + "Specification": "11", + "Metrial": "188", + "Color": "腾拓9-50#", + "Brank": "11", + "Width": 3000, + "Length": 4000, + "Thickness": 18, + "Border": 3, + "CutDia": 8, + "CutGap": 1, + "IsSorted": true, + "BoardCount": 1, + "MinBoardID": 1, + "MaxBoardID": 1, + "AvgLyr_All": 7.288800000000001, + "AvgLyr_NoLastOne": 7.288800000000001, + "Lyr_LastOne": 7.288800000000001, + "CompanyID": 0, + "UsedBoardMessage": [ + { + "Bi": 1, + "W": 3000, + "L": 4000, + "Si": 0, + "So": "", + "No": "", + "LK": false, + "scrapPts": null, + "scrapBlocks": [] + } + ], + "BlockPlaceMessage": [ + { + "Bi": 1, + "Bo": "220708337474", + "X": 2010, + "Y": 3, + "Pi": 2, + "Ps": 0, + "Ci": 3, + "Ca": 0, + "CP": 0, + "iA": true, + "iO": false, + "W": 0, + "L": 0, + "ZFB": 0, + "YFB": 0, + "SFB": 0, + "XFB": 0, + "Dh": false, + "Dm": false, + "OF": 0, + "type": 0, + "points": [], + "OrgSizeOutOff": { + "left": 0, + "right": 0, + "upper": 0, + "under": 0, + "width": 0, + "length": 0, + "hasDone": true + }, + "SizeOutOff": { + "left": 0, + "right": 0, + "upper": 0, + "under": 0, + "width": 0, + "length": 0, + "hasDone": false + }, + "PlaceOffX": 0, + "PlaceOffY": 0 + }, + { + "Bi": 1, + "Bo": "220708337475", + "X": 3, + "Y": 3, + "Pi": 1, + "Ps": 7, + "Ci": 9, + "Ca": 0, + "CP": 1, + "iA": true, + "iO": false, + "W": 0, + "L": 0, + "ZFB": 0, + "YFB": 0, + "SFB": 0, + "XFB": 0, + "Dh": false, + "Dm": false, + "OF": 0, + "type": 0, + "points": [], + "OrgSizeOutOff": { + "left": 0, + "right": 0, + "upper": 0, + "under": 0, + "width": 0, + "length": 0, + "hasDone": true + }, + "SizeOutOff": { + "left": 0, + "right": 0, + "upper": 0, + "under": 0, + "width": 0, + "length": 0, + "hasDone": false + }, + "PlaceOffX": 0, + "PlaceOffY": 0 + }, + { + "Bi": 1, + "Bo": "220708337476", + "X": 610, + "Y": 1217, + "Pi": 5, + "Ps": 1, + "Ci": 5, + "Ca": 0, + "CP": 2, + "iA": true, + "iO": false, + "W": 0, + "L": 0, + "ZFB": 0, + "YFB": 0, + "SFB": 0, + "XFB": 0, + "Dh": false, + "Dm": false, + "OF": 0, + "type": 0, + "points": [], + "OrgSizeOutOff": { + "left": 0, + "right": 0, + "upper": 0, + "under": 0, + "width": 0, + "length": 0, + "hasDone": true + }, + "SizeOutOff": { + "left": 0, + "right": 0, + "upper": 0, + "under": 0, + "width": 0, + "length": 0, + "hasDone": false + }, + "PlaceOffX": 0, + "PlaceOffY": 0 + }, + { + "Bi": 1, + "Bo": "220708337477", + "X": 1781, + "Y": 2010, + "Pi": 8, + "Ps": 7, + "Ci": 1, + "Ca": 0, + "CP": 3, + "iA": true, + "iO": false, + "W": 0, + "L": 0, + "ZFB": 0, + "YFB": 0, + "SFB": 0, + "XFB": 0, + "Dh": false, + "Dm": false, + "OF": 0, + "type": 0, + "points": [], + "OrgSizeOutOff": { + "left": 0, + "right": 0, + "upper": 0, + "under": 0, + "width": 0, + "length": 0, + "hasDone": true + }, + "SizeOutOff": { + "left": 0, + "right": 0, + "upper": 0, + "under": 0, + "width": 0, + "length": 0, + "hasDone": false + }, + "PlaceOffX": 0, + "PlaceOffY": 0 + }, + { + "Bi": 1, + "Bo": "220708337478", + "X": 610, + "Y": 2431, + "Pi": 9, + "Ps": 0, + "Ci": 2, + "Ca": 0, + "CP": 2, + "iA": true, + "iO": false, + "W": 0, + "L": 0, + "ZFB": 0, + "YFB": 0, + "SFB": 0, + "XFB": 0, + "Dh": false, + "Dm": false, + "OF": 0, + "type": 0, + "points": [], + "OrgSizeOutOff": { + "left": 0, + "right": 0, + "upper": 0, + "under": 0, + "width": 0, + "length": 0, + "hasDone": true + }, + "SizeOutOff": { + "left": 0, + "right": 0, + "upper": 0, + "under": 0, + "width": 0, + "length": 0, + "hasDone": false + }, + "PlaceOffX": 0, + "PlaceOffY": 0 + }, + { + "Bi": 1, + "Bo": "220708337479", + "X": 3, + "Y": 610, + "Pi": 3, + "Ps": 4, + "Ci": 8, + "Ca": 0, + "CP": 0, + "iA": true, + "iO": false, + "W": 0, + "L": 0, + "ZFB": 0, + "YFB": 0, + "SFB": 0, + "XFB": 0, + "Dh": false, + "Dm": false, + "OF": 0, + "type": 0, + "points": [], + "OrgSizeOutOff": { + "left": 0, + "right": 0, + "upper": 0, + "under": 0, + "width": 0, + "length": 0, + "hasDone": true + }, + "SizeOutOff": { + "left": 0, + "right": 0, + "upper": 0, + "under": 0, + "width": 0, + "length": 0, + "hasDone": false + }, + "PlaceOffX": 0, + "PlaceOffY": 0 + }, + { + "Bi": 1, + "Bo": "220708337480", + "X": 3, + "Y": 1781, + "Pi": 6, + "Ps": 0, + "Ci": 6, + "Ca": 0, + "CP": 1, + "iA": true, + "iO": false, + "W": 0, + "L": 0, + "ZFB": 0, + "YFB": 0, + "SFB": 0, + "XFB": 0, + "Dh": false, + "Dm": false, + "OF": 0, + "type": 0, + "points": [], + "OrgSizeOutOff": { + "left": 0, + "right": 0, + "upper": 0, + "under": 0, + "width": 0, + "length": 0, + "hasDone": true + }, + "SizeOutOff": { + "left": 0, + "right": 0, + "upper": 0, + "under": 0, + "width": 0, + "length": 0, + "hasDone": false + }, + "PlaceOffX": 0, + "PlaceOffY": 0 + }, + { + "Bi": 1, + "Bo": "220708337481", + "X": 610, + "Y": 610, + "Pi": 4, + "Ps": 7, + "Ci": 7, + "Ca": 0, + "CP": 3, + "iA": true, + "iO": false, + "W": 0, + "L": 0, + "ZFB": 0, + "YFB": 0, + "SFB": 0, + "XFB": 0, + "Dh": false, + "Dm": false, + "OF": 0, + "type": 0, + "points": [], + "OrgSizeOutOff": { + "left": 0, + "right": 0, + "upper": 0, + "under": 0, + "width": 0, + "length": 0, + "hasDone": true + }, + "SizeOutOff": { + "left": 0, + "right": 0, + "upper": 0, + "under": 0, + "width": 0, + "length": 0, + "hasDone": false + }, + "PlaceOffX": 0, + "PlaceOffY": 0 + }, + { + "Bi": 1, + "Bo": "220708337482", + "X": 610, + "Y": 1824, + "Pi": 7, + "Ps": 1, + "Ci": 4, + "Ca": 0, + "CP": 2, + "iA": true, + "iO": false, + "W": 0, + "L": 0, + "ZFB": 0, + "YFB": 0, + "SFB": 0, + "XFB": 0, + "Dh": false, + "Dm": false, + "OF": 0, + "type": 0, + "points": [], + "OrgSizeOutOff": { + "left": 0, + "right": 0, + "upper": 0, + "under": 0, + "width": 0, + "length": 0, + "hasDone": true + }, + "SizeOutOff": { + "left": 0, + "right": 0, + "upper": 0, + "under": 0, + "width": 0, + "length": 0, + "hasDone": false + }, + "PlaceOffX": 0, + "PlaceOffY": 0 + } + ], + "State": 0, + "HasWave": false, + "OrgWidth": 3000, + "OrgLength": 4000, + "BoardCount_Remain": 0, + "RemainBoardMessage": "[]", + "ScrapBoardList": [] + } + ] +} From fc5425c4145e30f985816d97d0fb72996a7b24ad Mon Sep 17 00:00:00 2001 From: yangsb Date: Wed, 13 Mar 2024 09:47:03 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=9C=BA=E5=8F=B0?= =?UTF-8?q?=E4=B8=8E=E6=9C=BA=E5=8F=B0=E6=A8=A1=E6=9D=BF=20=E6=A0=91?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/machine/MachineController.java | 10 ++++++ .../machine/MachineTemplateController.java | 10 ++++++ .../admin/machine/vo/MachineVO.java | 33 +++++++++++++++++++ .../dal/dataobject/machine/MachineDO.java | 2 +- .../machinetemplate/MachineTemplateDO.java | 2 +- .../service/machine/MachineService.java | 2 ++ .../service/machine/MachineServiceImpl.java | 8 +++++ .../machine/MachineTemplateService.java | 3 ++ .../machine/MachineTemplateServiceImpl.java | 7 ++++ 9 files changed, 75 insertions(+), 2 deletions(-) create mode 100644 cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/MachineVO.java diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/MachineController.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/MachineController.java index 354e10861..9bdd16795 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/MachineController.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/MachineController.java @@ -18,6 +18,7 @@ import com.cf.imes.framework.common.pojo.CommonResult; import com.cf.imes.framework.common.util.object.BeanUtils; import java.util.List; +import java.util.Map; import static com.cf.imes.framework.common.pojo.CommonResult.success; @@ -153,4 +154,13 @@ public class MachineController { return success(respVO); } + @GetMapping("getMachineTree") + @Operation(summary = "获得机台树") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('machine::query')") + public CommonResult>> getMachineTree() { + return success(machineService.getMachineTree()); + } + + } \ No newline at end of file diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/MachineTemplateController.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/MachineTemplateController.java index b80094f0f..9369789e2 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/MachineTemplateController.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/MachineTemplateController.java @@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; +import java.util.Map; import static com.cf.imes.framework.common.pojo.CommonResult.success; @@ -31,6 +32,15 @@ public class MachineTemplateController { @Resource private MachineTemplateService machineTemplateService; + @GetMapping("getMachineTemplateTree") + @Operation(summary = "获得机台模板树") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('machine-template::query')") + public CommonResult>> getMachineTemplateTree() { + return success(machineTemplateService.getMachineTemplateTree()); + } + + @GetMapping("page-template-machine") @Operation(summary = "机台模板分页") @PreAuthorize("@ss.hasPermission('machine-template::query')") diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/MachineVO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/MachineVO.java new file mode 100644 index 000000000..e22c0edce --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/machine/vo/MachineVO.java @@ -0,0 +1,33 @@ +package com.cf.imes.module.system.controller.admin.machine.vo; + +import com.alibaba.excel.annotation.ExcelProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.time.LocalDateTime; + +/** + * @author Beal + */ +@Data +public class MachineVO { + + @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "14092") + @ExcelProperty("主键") + private Long id; + + @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五") + @ExcelProperty("名称") + private String name; + + @Schema(description = "1机台设备 2CNC设备", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") + @ExcelProperty("1开料机 2钻孔机") + private Integer machineType; + + @Schema(description = "标签id") + private Long labelId; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; +} diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/machine/MachineDO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/machine/MachineDO.java index c9b6538fe..9fae2468d 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/machine/MachineDO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/machine/MachineDO.java @@ -35,7 +35,7 @@ public class MachineDO extends OrganBaseDO { /** * 1机台设备 2CNC设备 */ - private Boolean machineType; + private Long machineType; /** * 标签id */ diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/machinetemplate/MachineTemplateDO.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/machinetemplate/MachineTemplateDO.java index e9dd29f77..68e1a48ea 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/machinetemplate/MachineTemplateDO.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/dal/dataobject/machinetemplate/MachineTemplateDO.java @@ -27,7 +27,7 @@ public class MachineTemplateDO extends BaseDO { /** * 1机台设备 2CNC设备 */ - private Boolean machineType; + private Integer machineType; /** * 是否默认模板 */ diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/machine/MachineService.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/machine/MachineService.java index 78a1c51a7..5d1b5efa5 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/machine/MachineService.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/machine/MachineService.java @@ -70,4 +70,6 @@ public interface MachineService { DrillRespVO getDrill(Long id); List list(Collection ids); + + Map> getMachineTree(); } \ No newline at end of file diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/machine/MachineServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/machine/MachineServiceImpl.java index 58503941a..785e2af6b 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/machine/MachineServiceImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/machine/MachineServiceImpl.java @@ -227,6 +227,14 @@ public class MachineServiceImpl implements MachineService { return machineMapper.selectBatchIds(ids); } + @Override + public Map> getMachineTree() { + List machineDOS = machineMapper.selectList(); + List machineVOS = BeanUtils.toBean(machineDOS, MachineVO.class); + Map> map = machineVOS.stream().collect(Collectors.groupingBy(MachineVO::getMachineType)); + return map; + } + private void validateExists(Long id) { if (machineMapper.selectById(id) == null) { throw exception(MACHINE_NOT_EXISTS); diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/machine/MachineTemplateService.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/machine/MachineTemplateService.java index eade1d896..e3276d6c2 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/machine/MachineTemplateService.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/machine/MachineTemplateService.java @@ -6,6 +6,7 @@ import com.cf.imes.module.system.controller.admin.machine.vo.*; import com.cf.imes.module.system.dal.dataobject.machinetemplate.MachineTemplateDO; import java.util.List; +import java.util.Map; /** * @author there @@ -41,4 +42,6 @@ public interface MachineTemplateService { CuttingTemplateRespVO getDefaultCutting(); DrillTemplateRespVO getDefaultDrill(); + + Map> getMachineTemplateTree(); } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/machine/MachineTemplateServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/machine/MachineTemplateServiceImpl.java index f62367e25..667efd6db 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/machine/MachineTemplateServiceImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/machine/MachineTemplateServiceImpl.java @@ -250,6 +250,13 @@ public class MachineTemplateServiceImpl implements MachineTemplateService { throw exception(DEFAULT_TEMPLATE_COUNT); } + @Override + public Map> getMachineTemplateTree() { + List machineTemplateDOS = machineTemplateMapper.selectList(); + Map> map = machineTemplateDOS.stream().collect(Collectors.groupingBy(MachineTemplateDO::getMachineType)); + return map; + } + @Override public Boolean deleteCuttingTemplate(Long id) { MachineTemplateDO templateDO = machineTemplateMapper.selectById(id);