新增webcad生产单导入:增加侧面造型数据接收

This commit is contained in:
gaoqr
2025-04-08 14:09:01 +08:00
parent d8ddb52fbb
commit 82683dd154
2 changed files with 128 additions and 6 deletions
@@ -447,10 +447,10 @@ public class WebCadDataBlockReqVO {
private List<HoleDetailDTO> holeDetail;
@JsonProperty("SideHoleDetail")
private List<SideHoleDetailDTO> sideHoleDetail;
@JsonProperty("SideModelDetail")
private List<?> sideModelDetail;
@JsonProperty("ModelDetail")
private List<ModelDetailDTO> modelDetail;
@JsonProperty("SideModelDetail")
private List<SideModelDetailDTO> sideModelDetail;
@NoArgsConstructor
@Data
@@ -572,14 +572,20 @@ public class WebCadDataBlockReqVO {
public static class OriginModelingDTO {
@JsonProperty("outline")
private OutlineDTO outline;
@JsonProperty("holes")
private List<?> holes;
@JsonProperty("addLen")
private Double addLen;
@JsonProperty("addWidth")
private Double addWidth;
@JsonProperty("addDepth")
private Double addDepth;
@JsonProperty("thickness")
private Double thickness;
@JsonProperty("dir")
private Integer dir;
@JsonProperty("knifeRadius")
private Double knifeRadius;
@JsonProperty("holes")
private List<HolesDTO> holes;
@NoArgsConstructor
@Data
@@ -598,6 +604,24 @@ public class WebCadDataBlockReqVO {
private Double y;
}
}
@NoArgsConstructor
@Data
public static class HolesDTO {
@JsonProperty("pts")
private List<PtsDTO> pts;
@JsonProperty("buls")
private List<Double> buls;
@NoArgsConstructor
@Data
public static class PtsDTO {
@JsonProperty("x")
private Double x;
@JsonProperty("y")
private Double y;
}
}
}
@NoArgsConstructor
@@ -634,5 +658,32 @@ public class WebCadDataBlockReqVO {
private Double radius;
}
}
@NoArgsConstructor
@Data
public static class SideModelDetailDTO {
@JsonProperty("ModelID")
private Integer modelID;
@JsonProperty("LineID")
private Integer lineID;
@JsonProperty("Face")
private Integer face;
@JsonProperty("KnifeName")
private String knifeName;
@JsonProperty("ChaiDanName")
private String chaiDanName;
@JsonProperty("KnifeRadius")
private Double knifeRadius;
@JsonProperty("Depth")
private Double depth;
@JsonProperty("ModelType")
private Integer modelType;
@JsonProperty("OriginModeling")
private ModelDetailDTO.OriginModelingDTO originModeling;
@JsonProperty("PointList")
private List<ModelDetailDTO.PointListDTO> pointList;
@JsonProperty("OffSetList")
private List<ModelDetailDTO.OffSetListDTO> offSetList;
}
}
}
@@ -738,6 +738,7 @@ public class WebCadOrderImportFactory {
.holeDetail(getHoleDetail(pointInfo.getHoleDetail()))
.sideHoleDetail(getSideHoleDetail(pointInfo.getSideHoleDetail()))
.contourDetail(getContourDetail(pointInfo.getModelDetail()))
.sideDetail(getSideDetail(pointInfo.getSideModelDetail()))
.sideRemark(getSideRemark(plateRemark.getRemarks()))
.build();
@@ -993,6 +994,76 @@ public class WebCadOrderImportFactory {
return outlineList;
}
/**
* 获取侧面造型明细
*
* @param cadSideModelDetailList
* @return
*/
private List<ModelDetail> getSideDetail(List<WebCadDataBlockReqVO.PointInfoDTO.SideModelDetailDTO> cadSideModelDetailList) {
List<ModelDetail> modelDetails = new ArrayList<>();
if (CollUtil.isNotEmpty(cadSideModelDetailList)) {
for (WebCadDataBlockReqVO.PointInfoDTO.SideModelDetailDTO cadSideModelDetail : cadSideModelDetailList) {
ModelDetail modelDetail = new ModelDetail();
modelDetail.setModelID(cadSideModelDetail.getModelID());
modelDetail.setLineID(cadSideModelDetail.getLineID());
modelDetail.setFaceType(cadSideModelDetail.getFace());
modelDetail.setDepth(cadSideModelDetail.getDepth());
modelDetail.setKnifeName(cadSideModelDetail.getKnifeName());
modelDetail.setKnifeRadius(cadSideModelDetail.getKnifeRadius());
WebCadDataBlockReqVO.PointInfoDTO.ModelDetailDTO.OriginModelingDTO cadSideOriginModeling = cadSideModelDetail.getOriginModeling();
if (ObjectUtil.isNotNull(cadSideOriginModeling)) {
IOriginModelingData originModelingData = new IOriginModelingData();
originModelingData.setAddLen(cadSideOriginModeling.getAddLen());
originModelingData.setAddWidth(cadSideOriginModeling.getAddWidth());
originModelingData.setAddDepth(cadSideOriginModeling.getAddDepth());
originModelingData.setThickness(cadSideOriginModeling.getThickness());
originModelingData.setDir(cadSideOriginModeling.getDir());
originModelingData.setKnifeRadius(cadSideOriginModeling.getKnifeRadius());
originModelingData.setOutline(getOriginModelingOutlineList(cadSideOriginModeling.getOutline()));
originModelingData.setHoles(getSideModelingHoles(cadSideOriginModeling.getHoles()));
modelDetail.setOriginModeling(originModelingData);
}
modelDetail.setPointList(getModelDetailPointList(cadSideModelDetail.getPointList()));
modelDetail.setOffSetList(getModelDetailOffsetList(cadSideModelDetail.getOffSetList()));
modelDetails.add(modelDetail);
}
}
return modelDetails;
}
/**
* 获取侧面孤岛造型
*
* @param cadSideHoles
* @return
*/
private List<List<IContourData>> getSideModelingHoles(List<WebCadDataBlockReqVO.PointInfoDTO.ModelDetailDTO.OriginModelingDTO.HolesDTO> cadSideHoles) {
List<List<IContourData>> icontourDataList = new ArrayList<>();
if (CollUtil.isNotEmpty(cadSideHoles)) {
for (WebCadDataBlockReqVO.PointInfoDTO.ModelDetailDTO.OriginModelingDTO.HolesDTO sideHole : cadSideHoles) {
List<IContourData> contourDatas = new ArrayList<>();
List<WebCadDataBlockReqVO.PointInfoDTO.ModelDetailDTO.OriginModelingDTO.HolesDTO.PtsDTO> pts = sideHole.getPts();
List<Double> buls = sideHole.getBuls();
for (int i = 0; i < pts.size(); i++) {
IContourData iContourData = new IContourData();
WebCadDataBlockReqVO.PointInfoDTO.ModelDetailDTO.OriginModelingDTO.HolesDTO.PtsDTO ptsDTO = pts.get(i);
Double bul = buls.get(i);
iContourData.setBuls(bul);
iContourData.setPts(new Point(ptsDTO.getX(), ptsDTO.getY(), 0.0));
contourDatas.add(iContourData);
}
icontourDataList.add(contourDatas);
}
}
return icontourDataList;
}
/**
* 获取板件备注
@@ -1629,7 +1700,7 @@ public class WebCadOrderImportFactory {
CountDownLatch latch = new CountDownLatch(bodyList.size() + groupList.size() + itemList.size());
// 保存
saveBodyAsync(bodyList,latch, hasError, peek);
saveBodyAsync(bodyList, latch, hasError, peek);
saveGroupAsync(groupList, latch, hasError, peek);
saveItemAsync(itemList, latch, hasError, peek);
@@ -1774,6 +1845,6 @@ public class WebCadOrderImportFactory {
}
public static void main(String[] args) {
System.out.println(Math.ceil(205/100));
System.out.println(Math.ceil(205 / 100));
}
}