Merge remote-tracking branch 'origin/main'

This commit is contained in:
gaoqr
2024-09-23 16:15:51 +08:00
41 changed files with 1845 additions and 566 deletions
@@ -5,17 +5,21 @@ package com.cf.imes.module.executor.enums;
*/
public interface DictTypeConstants {
String HOLE_FACE = "hole_face";//加工面
String HOLE_DIRECTION = "hole_direction";// 方向
// ========== PLATE 模块 ==========
String TYPOGRAPHY_TYPE = "typographyType"; // 排版面
String GRAIN_TYPE = "grainType";// 小板纹路类型
String DOOR_OPENING_DIRECTIONS = "doorOpeningDirections";//开门方向
String PLATE_TYPE = "order_plate_type"; // 板类型
String UNIT_LENGTH = "unit_length"; // 长度单位
String UNIT_AREA = "area_unit"; // 面积单位
// ========== HOLE 模块 ==========
String HOLE_FACE = "hole_face";//孔加工面
String HOLE_DIR = "hole_direction";// 孔方向
String HOLE_TYPE = "hole_type";//孔类型
// ========== 单位 模块 ==========
String UNIT_LENGTH = "length_unit"; // 长度单位
String UNIT_AREA = "area_unit"; // 面积单位
}
@@ -10,7 +10,6 @@ import com.cf.imes.module.executor.controller.admin.order.vo.product.OrderRoomBo
import com.cf.imes.module.executor.controller.admin.orderParts.vo.OrderPartsRespVO;
import com.cf.imes.module.executor.enums.OrderDeletedEnum;
import com.cf.imes.module.executor.enums.OrderStatusEnum;
import com.cf.imes.module.executor.enums.OrderTypeEnum;
import com.cf.imes.module.executor.util.ExcelWriterUtil;
import com.cf.imes.module.executor.util.fileConversion.admin.api.webcad.ApiDataAchieve;
import com.cf.imes.module.executor.util.fileConversion.admin.api.webcad.ApiTypeRealize;
@@ -19,7 +18,6 @@ import com.cf.imes.module.executor.util.fileConversion.admin.files.excel.OrderPl
import com.cf.imes.module.executor.util.fileConversion.admin.files.xml.VO.OrderXmlVO;
import com.cf.imes.module.executor.util.fileConversion.admin.files.xml.XMLUtil;
import com.cf.imes.module.executor.util.fileConversion.admin.files.xml.XmlBuilder;
import com.cf.imes.module.executor.util.fileConversion.admin.files.xml.XmlTypeRealize;
import io.swagger.v3.oas.annotations.Parameters;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
@@ -59,7 +57,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.concurrent.ExecutionException;
@@ -285,17 +282,15 @@ public class OrderController {
@RequestParam(value = "type") Integer type,
@RequestParam(value = "index", required = false, defaultValue = "0") Integer index,
@RequestParam(value = "id", required = false, defaultValue = "0") Long orderId,
HttpServletResponse response) {
HttpServletResponse response) throws Exception {
List<OrderPlateImportExcelVO> list = null;
OrderXmlVO orderXmlVO = null;
OrderDO orderDO = null;
Map<String, Object> mapOrder = null;
Boolean flag = true;
try {
List<OrderPlateImportExcelVO> list = null;
OrderXmlVO orderXmlVO = null;
OrderDO orderDO = null;
Map<String, Object> mapOrder;
Boolean flag = true;
if (type == 0) { //excel
excelReadUtil.setErr(0);
Map<String, Object> map = excelReadUtil.read(file);
@@ -345,6 +340,7 @@ public class OrderController {
} else if (type == 2) { // xml
orderXmlVO = (OrderXmlVO) XMLUtil.read(file, OrderXmlVO.class);
System.out.println("1、 " + orderXmlVO);
if (index == 0){
if (orderXmlVO != null) {
@@ -368,16 +364,18 @@ public class OrderController {
orderXmlVO = new OrderXmlVO().setMemo("生产单内容为空");
flag = false;
} else if (orderDO.getCustomOrderNo() != null && !orderService.customOrderNoIsExists(orderDO.getCustomOrderNo())) {
orderXmlVO.setCustomOrderNo(orderXmlVO.getCustomOrderNo() + "自定义单号重复");
orderXmlVO.setOrderCode(orderXmlVO.getOrderCode() + "自定义单号重复");
flag = false;
} else if (flag){ // 生产单的内容正确
if (orderXmlVO.getMaterialXmlVO().getPlateXmlVOS().getPlateXmlVOList().size() == 0) {
orderDO.setStatus(OrderStatusEnum.EMPTY.getStatus());
} else {
orderDO.setStatus(OrderStatusEnum.NEW_ORDER.getStatus());
flag = xmlUtil.checkVO(orderXmlVO);
}
}
if (!flag){
System.out.println("xml = " + orderXmlVO);
String xmlStr = XmlBuilder.objectToXmlStr(orderXmlVO);
XMLUtil.writeErr(response, xmlStr, " 错误.xml");
return;
@@ -386,6 +384,12 @@ public class OrderController {
orderService.importExcelData(orderDO, type , index, list, orderXmlVO);
} catch (Exception e) {
log.error("文件导入异常", e);
if (type == 0) {
ExcelWriterUtil.write(response, mapOrder, list, orderService.getSavePath() + File.separator + "order_add_excel_err.xlsx");
} else if (type == 2) {
String xmlStr = XmlBuilder.objectToXmlStr(orderXmlVO);
XMLUtil.writeErr(response, xmlStr, " 错误.xml");
}
}
}
@@ -69,8 +69,10 @@ public class OrderModelDO extends ESDocument {
private List<PointDetail> rawPointDetail;
@Schema(description = "孔明细列表")
private List<HoleDetail> holeDetail;
@Schema(description = "造型明细")
@Schema(description = "造型明细(凹槽)")
private List<ModelDetail> contourDetail;
@Schema(description = "造型明细(孤岛,现在是xml数据格式添加)")
private List<ModelDetail> isletsDetail ; //造型明细(孤岛)
@Schema(description = "侧面孔明细列表")
private List<HoleDetail> sideHoleDetail;
@@ -18,8 +18,8 @@ import java.util.List;
public interface PlateGoodMapper extends BaseMapperX<PlateGoodDO> {
// goodsId匹配
default PlateGoodDO selectGoodOne(String id, Long organId) {
return selectOne(new LambdaQueryWrapper<PlateGoodDO>()
default List<PlateGoodDO> selectGoodOne(String id, Long organId) {
return selectList(new LambdaQueryWrapper<PlateGoodDO>()
.eq(PlateGoodDO::getGoodsId, id)
.eq(PlateGoodDO::getDeleted, 0)
.eq(PlateGoodDO::getOrganId, organId));
@@ -48,6 +48,7 @@ import com.cf.imes.module.executor.enums.OrderDeletedEnum;
import com.cf.imes.module.executor.enums.OrderStatusEnum;
import com.cf.imes.module.executor.service.plan.PlanService;
import com.cf.imes.module.executor.util.deviseData.structure.PlateDetail;
import com.cf.imes.module.executor.util.fileConversion.admin.SnowflakeIdWorker3rd;
import com.cf.imes.module.executor.util.fileConversion.admin.api.webcad.ApiDataAchieve;
import com.cf.imes.module.executor.util.fileConversion.admin.api.webcad.ApiTypeRealize;
import com.cf.imes.module.executor.util.fileConversion.admin.files.excel.ExcelTypeRealize;
@@ -125,6 +126,9 @@ public class OrderServiceImpl implements OrderService {
@Resource
private ApiDataAchieve apiDataAchieve;
@Resource
private SnowflakeIdWorker3rd idWorker;
@Resource
private ApiTypeRealize apiTypeRealize;
@@ -725,11 +729,11 @@ public class OrderServiceImpl implements OrderService {
PlateGoodDO plateGoodDO = null;
List<PlateGoodDO> plateGoodDOS = null;
if (goodsDO.getGoodsId() != null) { // 有goodsId
plateGoodDO = plateGoodMapper.selectGoodOne(goodsDO.getGoodsId(), SecurityFrameworkUtils.getLoginUser().getOrganId());
plateGoodDO = plateGoodMapper.selectGoodOne(goodsDO.getGoodsId(), OrganContextHolder.getOrganId()).get(0);
} else { // 没有goodsId 其他信息匹配
plateGoodDOS = plateGoodMapper.selectGood(goodsDO.getGoodsName(), goodsDO.getMaterial(), goodsDO.getColor(),
goodsDO.getTexture(), goodsDO.getWidth(), goodsDO.getThickness(), goodsDO.getHeight(), goodsDO.getBrand(),
goodsDO.getSpec(), SecurityFrameworkUtils.getLoginUser().getOrganId());
goodsDO.getSpec(), OrganContextHolder.getOrganId());
}
if (plateGoodDOS != null && plateGoodDOS.size() > 0) {//存在板材
@@ -738,10 +742,13 @@ public class OrderServiceImpl implements OrderService {
goodsDO.setGoodsId(plateGoodDO.getGoodsId());
} else { // 不存在板材
Long plateGoods = (Long) identifierGenerator.nextId(null);
Long goodsId = (Long) identifierGenerator.nextId(null);
long plateNo = idWorker.nextId();
long obtainingTime = idWorker.obtainingTime();
// Long goodsId = (Long) identifierGenerator.nextId(null);
plateGoodDO = BeanUtils.toBean(goodsDO, PlateGoodDO.class)
.setId(plateGoods)
.setGoodsId(String.valueOf(goodsId));
.setGoodsId((obtainingTime) + Long.toString(plateNo).substring(2));
// 判断是否存在raw_goods_id
if (goodsDO.getGoodsId() != null) {
plateGoodDO.setGoodsId(goodsDO.getGoodsId());
@@ -39,4 +39,8 @@ public class IOriginModelingData {
private Double addWidth;
@Schema(description = "槽加深")
private Double addDepth;
// ============ 启用 api =============
@Schema(description = "点列表")
private List<PointList> pointList;
}
@@ -18,15 +18,34 @@ import java.util.List;
@Schema(description = "管理后台 - 造型信息")
public class ModelDetail {
@Schema(description = "造型ID")
private Integer id;
@Schema(description = "父ID")
private Integer parentId;
@Schema(description = "类型——矩形槽Rectangle、路径槽Path、内铣槽internalMilling、折返路径槽turnbackPath")
private String type;
@Schema(description = "使用字典进行解析 造型排版面 0正面, 1反面, 2侧面")
private Integer faceType;
@Schema(description = "造型长度")
private Double width;
@Schema(description = "造型宽度")
private Double length;
@Schema(description = "造型深度")
private Double depth;
@Schema(description = "圆角半径")
private Double round;
@Schema(description = "刀路冗余量(偏移重叠量)")
private Double redundance;
@Schema(description = "角度(二维刀路V型刀提角/清角用)")
private Double tangentAngle;
@Schema(description = "造型数量")
private Integer count;
@Schema(description = "造像使用刀具名称")
private String knifeName;
@@ -95,7 +95,8 @@ public class PlateDetail{
private List<PointDetail> rawPointDetail ; //原始点明细(含封边)
private List<HoleDetail> holeDetail ; //孔明细,表示板上的孔
private List<ModelDetail> contourDetail ; //造型明细
private List<ModelDetail> contourDetail ; //造型明细(凹槽)
private List<ModelDetail> isletsDetail ; //造型明细(孤岛)
private List<HoleDetail> sideHoleDetail;//侧面孔明细
@@ -57,7 +57,12 @@ public class ToolUtil {
// 数据类型转换
public static Boolean convertToType(String str, Class<?> targetType) {
try {
Method method = targetType.getMethod("parse" + targetType.getSimpleName(), String.class);
Method method;
if (targetType.getSimpleName().equals("Integer")) {
method = targetType.getMethod("parseInt", String.class);
} else {
method = targetType.getMethod("parse" + targetType.getSimpleName(), String.class);
}
method.invoke(null, str);
return true;
} catch (Exception e) {
@@ -931,6 +931,24 @@ public class ApiTypeRealize {
.build());
}
}
List<PointList> pointListInOrigin = new ArrayList<>();
if (model.getJSONArray("OriginModeling") != null && !model.getJSONArray("OriginModeling").isEmpty()) {
for (int j = 0; j < model.getJSONArray("OriginModeling").size(); j++) {
JSONObject point = model.getJSONArray("OriginModeling").getJSONObject(j);
String[] points = splitAndTrim(point.getString("Pos"));
pointListInOrigin.add(PointList.builder()
.pointX(Double.valueOf(points[X]))
.pointY(Double.valueOf(points[Y]))
.pointZ(Double.valueOf(points[Z]))
.curve(Double.valueOf(point.getString("Curve")))
.build());
}
}
IOriginModelingData originModeling = IOriginModelingData.builder()
.pointList(pointListInOrigin)
.build();
modelDetails.add(ModelDetail.builder()
.depth(Double.valueOf(model.getString("Depth")))
.faceType(Integer.valueOf(model.getString("Face")))
@@ -938,6 +956,7 @@ public class ApiTypeRealize {
.knifeRadius(Double.valueOf(model.getString("Diameter")) / 2)
.pointList(pointLists)
.offSetList(offSetLists)
.originModeling(originModeling)
.build());
}
}
@@ -15,18 +15,14 @@ import java.io.Serializable;
// 组件/部件信息
public class AssemblyXmlVO implements Serializable {
// 五金ID
@XmlAttribute(name = "组件/部件ID")
private String id;
// 五金物料编码
@XmlAttribute(name = "itemCode")
private String itemCode;
// 类型——抽屉Drawer、酒格WineGrid、框架/拼框门FrameDoor、线条(顶线、脚线、挡水条等)Line、桌面/台面TableTop、水槽Sink……
@XmlAttribute(name = "type")
private String type;
// 物料编码
@XmlAttribute(name = "itemNo")
private String itemNo;
// 厂家
@XmlAttribute(name = "manufacturer")
private String manufacturer;
@@ -67,7 +63,7 @@ public class AssemblyXmlVO implements Serializable {
@XmlAttribute(name = "count")
private String count;
// 单位
// 长度单位
@XmlAttribute(name = "unit")
private String unit;
@@ -83,25 +79,37 @@ public class AssemblyXmlVO implements Serializable {
@XmlAttribute(name = "shelf")
private String shelf;
// 房间ID
@XmlAttribute(name = "roomId")
private String roomId;
// 房间名称
@XmlAttribute(name = "roomName")
private String roomName;
// 柜体ID
@XmlAttribute(name = "boxId")
private String boxId;
// 房间号
@XmlAttribute(name = "roomCode")
private String roomCode;
// 加工组ID
@XmlAttribute(name = "groupId")
private String groupId;
// 柜体名称
@XmlAttribute(name = "boxName")
private String boxName;
// 模块ID
@XmlAttribute(name = "moduleId")
private String moduleId;
// 柜体号
@XmlAttribute(name = "boxCode")
private String boxCode;
// 父ID
@XmlAttribute(name = "parentId")
private String parentId;
// 加工组号
@XmlAttribute(name = "groupCode")
private String groupCode;
// 模块名称
@XmlAttribute(name = "moduleName")
private String moduleName;
// 模块号
@XmlAttribute(name = "moduleCode")
private String moduleCode;
// 父物料编码
@XmlAttribute(name = "parentCode")
private String parentCode;
// 备注
@XmlElement(name = "Remarks")
@@ -15,35 +15,35 @@ import java.io.Serializable;
// 板件信息
public class BlockXmlVO implements Serializable {
// 板件ID
@XmlAttribute(name = "id")
private String id;
// 设计编号
@XmlAttribute(name = "designNo")
private String designNo;
@XmlAttribute(name = "designCode")
private String designCode;
// 生产编号
@XmlAttribute(name = "productionNo")
private String productionNo;
@XmlAttribute(name = "productionCode")
private String productionCode;
// 名称
@XmlAttribute(name = "name")
private String name;
// 类型——类型——背板类、层板类、立板类
// 类型——类型——背板类、层板类、立板类 -- order_plate_type
@XmlAttribute(name = "type")
private String type;
// 开向——左开、右开、上开(上翻)、下开(下翻)、非门板
// 是否见光板/面板 ——是/否
@XmlAttribute(name = "visible")
private String visible;
// 开向——左开、右开、上开、下开、非门板 -- doorOpeningDirections
@XmlAttribute(name = "openDirection")
private String openDirection;
// 设计纹路——正纹、反纹、可翻转
// 设计纹路——正纹、反纹、可翻转 -- grainType
@XmlAttribute(name = "texture")
private String texture;
// 设计饰面——无、单面贴皮/涂装(正面、反面)、双面贴皮/涂装(不同色、同色)
// 设计饰面——无、单面、双面
@XmlAttribute(name = "coatingType")
private String coatingType;
@@ -83,11 +83,11 @@ public class BlockXmlVO implements Serializable {
@XmlAttribute(name = "cuttingThickness")
private String cuttingThickness;
// 成倍数量
// 成倍拆单数量
@XmlAttribute(name = "multipleNumber")
private String multipleNumber;
// 成倍序号
// 成倍拆单序号
@XmlAttribute(name = "multipleNo")
private String multipleNo;
@@ -99,7 +99,7 @@ public class BlockXmlVO implements Serializable {
@XmlAttribute(name = "slotting")
private String slotting;
// 排版面——设计正面、设计反面、随意面
// 排版面——设计正面、设计反面、随意面 -- typographyType
@XmlAttribute(name = "layoutFace")
private String layoutFace;
@@ -112,40 +112,42 @@ public class BlockXmlVO implements Serializable {
private String coatingReverse;
// 长度单位
@XmlAttribute(name = "unitLength")
private String unitLength;
// 面积单位
@XmlAttribute(name = "unitArea")
private String unitArea;
// 成品面积
@XmlAttribute(name = "area")
private String area;
// 开料面积
@XmlAttribute(name = "areaCutting")
private String areaCutting;
@XmlAttribute(name = "unit")
private String unit;
// 是否钻孔
@XmlAttribute(name = "drilling")
private String drilling;
// 房间ID
@XmlAttribute(name = "roomId")
private String roomId;
// 房间名称
@XmlAttribute(name = "roomName")
private String roomName;
// 柜体ID
@XmlAttribute(name = "boxId")
private String boxId;
// 房间号
@XmlAttribute(name = "roomCode")
private String roomCode;
// 房间名称
@XmlAttribute(name = "boxName")
private String boxName;
// 柜体号
@XmlAttribute(name = "boxCode")
private String boxCode;
// 加工组号
@XmlAttribute(name = "groupCode")
private String groupCode;
// 模块名称
@XmlAttribute(name = "moduleName")
private String moduleName;
// 模块号
@XmlAttribute(name = "moduleCode")
private String moduleCode;
// 加工组ID
@XmlAttribute(name = "groupId")
private String groupId;
// 模块ID
@XmlAttribute(name = "moduleId")
private String moduleId;
// 基点X坐标
@XmlAttribute(name = "basePointX")
@@ -171,6 +173,8 @@ public class BlockXmlVO implements Serializable {
@XmlAttribute(name = "axisZrotate")
private String axisZrotate;
// 成品(设计成型/已封边/贴皮或涂装的板件)轮廓信息
@XmlElement(name = "Outline")
private OutlineXmlVO outlineXmlVO ;
@@ -17,10 +17,6 @@ import java.io.Serializable;
@XmlAccessorType(XmlAccessType.FIELD)
public class BoxXmlVO implements Serializable {
// 柜体ID
@XmlAttribute(name = "id")
private String id;
// 房间名称
@XmlAttribute(name = "name")
private String name;
@@ -41,6 +37,15 @@ public class BoxXmlVO implements Serializable {
@XmlAttribute(name = "length")
private String length;
// 成倍拆单数量
@XmlAttribute(name = "multipleNumber")
private String multipleNumber;
// 成倍拆单序号
@XmlAttribute(name = "multipleNo")
private String multipleNo;
// 基点X坐标
@XmlAttribute(name = "basePointX")
private String basePointX;
@@ -17,7 +17,59 @@ import java.io.Serializable;
@XmlAccessorType(XmlAccessType.FIELD)
public class CorrelationXmlVO implements Serializable {
// [关联五金ID/关联组件ID]
@XmlAttribute(name = "id")
private String id;
// 关联五金/关联组件物料编码
@XmlAttribute(name = "itemCode")
private String itemCode;
// 类型
@XmlAttribute(name = "type")
private String type;
// 厂家
@XmlAttribute(name = "manufacturer")
private String manufacturer;
// 品牌
@XmlAttribute(name = "brand")
private String brand;
// 名称
@XmlAttribute(name = "name")
private String name;
// 材质
@XmlAttribute(name = "material")
private String material;
// 颜色
@XmlAttribute(name = "color")
private String color;
// 规格/类型
@XmlAttribute(name = "specs")
private String specs;
// 长
@XmlAttribute(name = "length")
private String length;
// 宽
@XmlAttribute(name = "width")
private String width;
// 高
@XmlAttribute(name = "height")
private String height;
// 长度单位
@XmlAttribute(name = "unit")
private String unit;
// 数量
@XmlAttribute(name = "count")
private String count;
// 数量单位
@XmlAttribute(name = "unitCount")
private String unitCount;
}
@@ -4,10 +4,7 @@ import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.*;
import java.io.Serializable;
import java.util.List;
@@ -18,6 +15,10 @@ import java.util.List;
@XmlAccessorType(XmlAccessType.FIELD)
public class CorrelationXmlVOS implements Serializable {
// 关联配件数量
@XmlAttribute(name = "count")
private String count;
// 房间
@XmlElement(name = "correlation")
private List<CorrelationXmlVO> correlationXmlVOList;
@@ -15,13 +15,9 @@ import java.io.Serializable;
// 封边条信息
public class EdgingXmlVO implements Serializable {
// 封边条ID
@XmlAttribute(name = "id")
private String id;
// 物料编码
@XmlAttribute(name = "itemNo")
private String itemNo;
// 封边条物料编码
@XmlAttribute(name = "itemCode")
private String itemCode;
// 厂家
@XmlAttribute(name = "manufacturer")
@@ -79,25 +75,37 @@ public class EdgingXmlVO implements Serializable {
@XmlAttribute(name = "unitCount")
private String unitCount;
// 房间ID
@XmlAttribute(name = "roomId")
private String roomId;
// 房间名称
@XmlAttribute(name = "roomName")
private String roomName;
// 柜体ID
@XmlAttribute(name = "boxId")
private String boxId;
// 房间号
@XmlAttribute(name = "roomCode")
private String roomCode;
// 加工组ID
@XmlAttribute(name = "groupId")
private String groupId;
// 柜体名称
@XmlAttribute(name = "boxName")
private String boxName;
// 模块ID
@XmlAttribute(name = "moduleId")
private String moduleId;
// 柜体号
@XmlAttribute(name = "boxCode")
private String boxCode;
// 父ID
@XmlAttribute(name = "parentId")
private String parentId;
// 加工组名称
@XmlAttribute(name = "groupName")
private String groupName;
// 加工组号
@XmlAttribute(name = "groupCode")
private String groupCode;
// 模块名称
@XmlAttribute(name = "moduleName")
private String moduleName;
// 模块号
@XmlAttribute(name = "moduleCode")
private String moduleCode;
// 备注
@XmlElement(name = "Remarks")
@@ -91,4 +91,7 @@ public class GrooveXmlVO implements Serializable {
// 偏移刀路列表
@XmlElement(name = "offsetLines")
private OffsetLineXmlVOS offsetLineXmlVOS;
@XmlAttribute(name = "result")
private String result;
}
@@ -20,18 +20,34 @@ public class GrooveXmlVOS implements Serializable {
@XmlAttribute(name = "count")
private String count;
// 正面垂凹槽数量
// 正面垂凹槽数量/凹槽数量
@XmlAttribute(name = "countFaceA")
private String countFaceA;
// 反面凹槽数量
// 反面凹槽数量/凹槽数量
@XmlAttribute(name = "countFaceB")
private String countFaceB;
// 侧凹槽数量
// 侧凹槽数量/凹槽数量
@XmlAttribute(name = "countSide")
private String countSide;
// 左侧槽数量/凹槽数量
@XmlAttribute(name = "countSideL")
private String countSideL;
// 右侧槽数量/凹槽数量
@XmlAttribute(name = "countSideR")
private String countSideR;
// 上侧槽数量/凹槽数量
@XmlAttribute(name = "countSideU")
private String countSideU;
// 下侧槽数量/凹槽数量
@XmlAttribute(name = "countSideD")
private String countSideD;
// 斜面凹槽数量
@XmlAttribute(name = "countBevelled")
private String countBevelled;
@@ -44,6 +60,14 @@ public class GrooveXmlVOS implements Serializable {
@XmlAttribute(name = "countThrough")
private String countThrough;
// 二维造型刀路数量
@XmlAttribute(name = "count2V")
private String count2V;
// 三维造型刀路(浮雕)数量
@XmlAttribute(name = "count3D")
private String count3D;
// 凹槽信息
@XmlElement(name = "Groove")
private List<GrooveXmlVO> grooveXmlVOList;
@@ -17,10 +17,6 @@ import java.io.Serializable;
@XmlAccessorType(XmlAccessType.FIELD)
public class GroupXmlVO implements Serializable {
// 加工组ID
@XmlAttribute(name = "id")
private String id;
// 加工组名称
@XmlAttribute(name = "name")
private String name;
@@ -15,18 +15,14 @@ import java.io.Serializable;
// 五金信息
public class HardwareXmlVO implements Serializable {
// 五金ID
@XmlAttribute(name = "id")
private String id;
// 五金物料编码
@XmlAttribute(name = "itemCode")
private String itemCode;
// 类型——拉手Handle、铰链Hinge、导轨Track、衣杆/裤杆Pole、杆托/杆座PoleBase、拉直器Straightener、灯带LightBelt、螺丝(及螺母)Screw(Nut)……
@XmlAttribute(name = "type")
private String type;
// 物料编码
@XmlAttribute(name = "itemNo")
private String itemNo;
// 厂家
@XmlAttribute(name = "manufacturer")
private String manufacturer;
@@ -67,7 +63,7 @@ public class HardwareXmlVO implements Serializable {
@XmlAttribute(name = "count")
private String count;
// 单位
// 长度单位
@XmlAttribute(name = "unit")
private String unit;
@@ -83,25 +79,37 @@ public class HardwareXmlVO implements Serializable {
@XmlAttribute(name = "shelf")
private String shelf;
// 房间ID
@XmlAttribute(name = "roomId")
private String roomId;
// 房间名称
@XmlAttribute(name = "roomName")
private String roomName;
// 柜体ID
@XmlAttribute(name = "boxId")
private String boxId;
// 房间号
@XmlAttribute(name = "roomCode")
private String roomCode;
// 加工组ID
@XmlAttribute(name = "groupId")
private String groupId;
// 柜体名称
@XmlAttribute(name = "boxName")
private String boxName;
// 模块ID
@XmlAttribute(name = "moduleId")
private String moduleId;
// 柜体号
@XmlAttribute(name = "boxCode")
private String boxCode;
// 父ID
@XmlAttribute(name = "parentId")
private String parentId;
// 加工组号
@XmlAttribute(name = "groupCode")
private String groupCode;
// 模块名称
@XmlAttribute(name = "moduleName")
private String moduleName;
// 模块号
@XmlAttribute(name = "moduleCode")
private String moduleCode;
// 父物料编码
@XmlAttribute(name = "parentCode")
private String parentCode;
// 备注
@XmlElement(name = "Remarks")
@@ -14,10 +14,6 @@ import java.io.Serializable;
@XmlAccessorType(XmlAccessType.FIELD)
public class HoleXmlVO implements Serializable {
// 孔ID
@XmlAttribute(name = "id")
private String id;
// 孔类型
@XmlAttribute(name = "type")
private String type;
@@ -74,6 +70,59 @@ public class HoleXmlVO implements Serializable {
@XmlAttribute(name = "toolNo")
private String toolNo;
// 起点坐标X
@XmlAttribute(name = "startX")
private String startX;
// 起点坐标Y
@XmlAttribute(name = "startY")
private String startY;
// 起点坐标Z
@XmlAttribute(name = "startZ")
private String startZ;
// 刀具起点X轴旋转角度
@XmlAttribute(name = "toolStartRotateX")
private String toolStartRotateX;
// 刀具起点Y轴旋转角度
@XmlAttribute(name = "toolStartRotateY")
private String toolStartRotateY;
// 刀具起点Z轴旋转角度
@XmlAttribute(name = "toolStartRotateZ")
private String toolStartRotateZ;
// 终点坐标X
@XmlAttribute(name = "endX")
private String endX;
// 终点坐标Y
@XmlAttribute(name = "endY")
private String endY;
// 终点坐标Z
@XmlAttribute(name = "endZ")
private String endZ;
// 刀具终点X轴旋转角度
@XmlAttribute(name = "toolEndRotateX")
private String toolEndRotateX;
// 刀具终点Y轴旋转角度
@XmlAttribute(name = "toolEndRotateY")
private String toolEndRotateY;
// 刀具终点Z轴旋转角度
@XmlAttribute(name = "toolEndRotateZ")
private String toolEndRotateZ;
// 是否不要
@XmlElement(name = "Begin")
private PointBeginXmlVO pointBeginXmlVO;
@@ -32,6 +32,22 @@ public class HoleXmlVOS implements Serializable {
@XmlAttribute(name = "countSide")
private String countSide;
// 左侧孔数量
@XmlAttribute(name = "countSideL")
private String countSideL;
// 右侧孔数量
@XmlAttribute(name = "countSideR")
private String countSideR;
// 上侧孔数量
@XmlAttribute(name = "countSideU")
private String countSideU;
// 下侧孔数量
@XmlAttribute(name = "countSideD")
private String countSideD;
// 斜面孔数量
@XmlAttribute(name = "countBevelled")
private String countBevelled;
@@ -44,7 +60,11 @@ public class HoleXmlVOS implements Serializable {
@XmlAttribute(name = "countBuildIn")
private String countBuildIn;
// 挖穿孔数量
// 铰链孔数量
@XmlAttribute(name = "countHinge")
private String countHinge;
// 挖穿孔数量(通孔/对成孔)
@XmlAttribute(name = "countThrough")
private String countThrough;
@@ -29,6 +29,6 @@ public class IsletXmlVO implements Serializable {
private String grooveCount;
// 孤岛点信息
@XmlElement(name = "Point")
private List<PointXmlVO> pointXmlVOList;
@XmlElement(name = "Points")
private PointXmlVOS pointXmlVOS;
}
@@ -4,10 +4,7 @@ import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.*;
import java.io.Serializable;
import java.util.List;
@@ -19,6 +16,10 @@ import java.util.List;
// 孤岛列表
public class IsletXmlVOS implements Serializable {
// 孤岛数量
@XmlAttribute(name = "count")
private String count;
// 房间
@XmlElement(name = "Islet")
private List<IsletXmlVO> isletXmlVOList;
@@ -10,7 +10,7 @@ import java.io.Serializable;
@Data
@AllArgsConstructor
@NoArgsConstructor
@XmlRootElement(name = "Material")
@XmlRootElement(name = "Materials")
@XmlAccessorType(XmlAccessType.FIELD)
// 物料信息
public class MaterialXmlVO implements Serializable {
@@ -14,10 +14,6 @@ import java.io.Serializable;
@XmlAccessorType(XmlAccessType.FIELD)
public class ModuleXmlVO implements Serializable {
// 模块ID
@XmlAttribute(name = "id")
private String id;
// 模块名称
@XmlAttribute(name = "name")
private String name;
@@ -18,10 +18,6 @@ import java.io.Serializable;
// 偏移刀路信息
public class OffsetLineXmlVO implements Serializable {
// 偏移刀路ID
@XmlAttribute(name = "id")
private String id;
// 偏移值——正值外偏/右偏、负值内偏/左偏
@XmlAttribute(name = "offset")
private String offset;
@@ -4,10 +4,7 @@ import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.*;
import java.io.Serializable;
import java.util.List;
@@ -19,6 +16,10 @@ import java.util.List;
// 偏移刀路列表
public class OffsetLineXmlVOS implements Serializable {
// 偏移刀路数量
@XmlAttribute(name = "count")
private String count;
@XmlElement(name = "offsetLine")
private List<OffsetLineXmlVO> offsetLineXmlVOList;
}
@@ -13,17 +13,14 @@ import java.io.Serializable;
@XmlRootElement(name = "Order")
@XmlAccessorType(XmlAccessType.FIELD)
public class OrderXmlVO implements Serializable {
// 订单ID
@XmlAttribute(name = "id")
private String id;
// 订单编号
@XmlAttribute(name = "orderNo")
private String orderNo;
// 订单自定义编号
@XmlAttribute(name = "customOrderNo")
private String customOrderNo;
@XmlAttribute(name = "orderCode")
private String orderCode;
// 客户
@XmlAttribute(name = "customer")
@@ -110,7 +107,7 @@ public class OrderXmlVO implements Serializable {
private GroupXmlVOS groupXmlVOS;
// 材质信息
@XmlElement(name = "Material")
@XmlElement(name = "Materials")
private MaterialXmlVO materialXmlVO;
}
@@ -15,13 +15,9 @@ import java.io.Serializable;
// 板材信息
public class PlateXmlVO implements Serializable {
// 板材ID
@XmlAttribute(name = "id")
private String id;
// 物料编码
@XmlAttribute(name = "itemNo")
private String itemNo;
@XmlAttribute(name = "itemCode")
private String itemCode;
// 厂家
@XmlAttribute(name = "manufacturer")
@@ -39,19 +35,19 @@ public class PlateXmlVO implements Serializable {
@XmlAttribute(name = "material")
private String material;
// 饰面类型——无、单面贴皮/涂装、双面贴皮/涂装
// 饰面类型——无、单面、双面
@XmlAttribute(name = "coating")
private String coating;
// 有无纹理
// 有无纹理 有 无
@XmlAttribute(name = "grained")
private String grained;
// 正面饰面颜色、无
// 正面饰面颜色、无(空)
@XmlAttribute(name = "coatingObverse")
private String coatingObverse;
// 反面饰面颜色、无
// 反面饰面颜色、无(空)
@XmlAttribute(name = "coatingReverse")
private String coatingReverse;
@@ -115,6 +111,10 @@ public class PlateXmlVO implements Serializable {
@XmlAttribute(name = "memo")
private String memo;
// 数量
@XmlAttribute(name = "count")
private String count;
@XmlElement(name = "Blocks")
private BlockXmlVOS blockXmlVOS;
}
@@ -21,7 +21,7 @@ public class PlateXmlVOS implements Serializable {
@XmlElement( name = "Plate")
private List<PlateXmlVO> plateXmlVOList;
// 上传结果
// 上传结果 内置
@XmlElement( name = "result")
private String result;
}
@@ -18,10 +18,6 @@ import java.io.Serializable;
// 孤岛点信息
public class PointXmlVO implements Serializable {
// 点ID
@XmlAttribute(name = "id")
private String id;
// 点X坐标
@XmlAttribute(name = "pointX")
private String pointX;
@@ -30,7 +26,7 @@ public class PointXmlVO implements Serializable {
@XmlAttribute(name = "pointY")
private String pointY;
// 点Z坐标
// 点Z坐标 (在outline中不用)
@XmlAttribute(name = "pointZ")
private String pointZ;
@@ -46,13 +42,13 @@ public class PointXmlVO implements Serializable {
@XmlAttribute(name = "process")
private String process;
// 封边条ID
@XmlAttribute(name = "edgingId")
private String edgingId;
// 封边条物料编码
@XmlAttribute(name = "itemCode")
private String itemCode;
// 封边条厚度
@XmlAttribute(name = "edgingThickness")
private String edgingThickness;
// 封边条物料名称
@XmlAttribute(name = "edgingName")
private String edgingName;
// 封边条颜色
@XmlAttribute(name = "edgingColor")
@@ -62,7 +58,19 @@ public class PointXmlVO implements Serializable {
@XmlAttribute(name = "edgingMaterial")
private String edgingMaterial;
// 封边条余量(两头)
// 封边条厚度
@XmlAttribute(name = "edgingThickness")
private String edgingThickness;
// 封边条宽度
@XmlAttribute(name = "edgingWidth")
private String edgingWidth;
// 封边条长度
@XmlAttribute(name = "edgingLength")
private String edgingLength;
// 封边条余量
@XmlAttribute(name = "edgingExtend")
private String edgingExtend;
@@ -70,7 +78,7 @@ public class PointXmlVO implements Serializable {
@XmlAttribute(name = "preMilling")
private String preMilling;
// 延展/收缩量
// 延展/收缩量,预留边
@XmlAttribute(name = "scale")
private String scale;
@@ -4,10 +4,7 @@ import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.*;
import java.io.Serializable;
import java.util.List;
@@ -18,6 +15,13 @@ import java.util.List;
@XmlAccessorType(XmlAccessType.FIELD)
public class PointXmlVOS implements Serializable {
// 刀路点阵数量
@XmlAttribute(name = "count")
private String count;
@XmlElement(name = "Point")
private List<PointXmlVO> pointXmlVOList;
@XmlAttribute(name = "result")
private String result;
}
@@ -17,10 +17,6 @@ import java.io.Serializable;
@XmlAccessorType(XmlAccessType.FIELD)
public class RemarkXmlVO implements Serializable {
// 备注ID
@XmlAttribute(name = "id")
private String id;
// 备注名称
@XmlAttribute(name = "name")
private String name;
@@ -15,10 +15,6 @@ import java.util.List;
@XmlAccessorType(XmlAccessType.FIELD)
public class RoomXmlVO implements Serializable {
// 房间ID
@XmlAttribute(name = "id")
private String id;
// 房间名称
@XmlAttribute(name = "name")
private String name;
@@ -39,10 +35,43 @@ public class RoomXmlVO implements Serializable {
@XmlAttribute(name = "length")
private String length;
// 房间数量
// 成倍拆单数量
@XmlAttribute(name = "multipleNumber")
private String multipleNumber;
// 成倍拆单序号
@XmlAttribute(name = "multipleNo")
private String multipleNo;
// 柜体数量
@XmlAttribute(name = "count")
private String count;
// 基点X坐标
@XmlAttribute(name = "basePointX")
private String basePointX;
// 基点Y坐标
@XmlAttribute(name = "basePointY")
private String basePointY;
// 基点Z坐标
@XmlAttribute(name = "basePointZ")
private String basePointZ;
// 绕X轴旋转角度
@XmlAttribute(name = "axisXrotate")
private String axisXrotate;
// 绕Y轴旋转角度
@XmlAttribute(name = "axisYrotate")
private String axisYrotate;
// 绕Z轴旋转角度
@XmlAttribute(name = "axisZrotate")
private String axisZrotate;
@XmlElement(name = "Box")
private List<BoxXmlVO> boxXmlVOList;
}
@@ -3,6 +3,7 @@ package com.cf.imes.module.executor.util.fileConversion.admin.files.xml;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.nacos.common.utils.StringUtils;
import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator;
import com.cf.imes.framework.mybatis.core.generator.SnowFlakeGenerator;
import com.cf.imes.module.executor.controller.admin.orderParts.vo.OrderPartsRemark;
import com.cf.imes.module.executor.dal.dataobject.goods.GoodsDO;
import com.cf.imes.module.executor.dal.dataobject.orderBody.OrderBodyDO;
@@ -46,6 +47,8 @@ public class XmlTypeRealize {
final String NOT_ASSIGNED = "未命名";
@Resource
private SnowFlakeGenerator snowFlakeGenerator;
@Resource
private IdentifierGenerator identifierGenerator;
@@ -58,7 +61,7 @@ public class XmlTypeRealize {
for (RoomXmlVO roomXmlVO : roomXmlVOS.getRoomXmlVOList()) {
Map<String, OrderBodyDO> bodyInfos = new HashMap<>();
Long roomId = Long.valueOf(roomXmlVO.getId());
Long roomId = (Long) snowFlakeGenerator.nextId(null);
for (BoxXmlVO boxXmlVO : roomXmlVO.getBoxXmlVOList()) {
OrderBodyDO orderBodyDO = OrderBodyDO.builder()
.id((Long) identifierGenerator.nextId(null))
@@ -73,9 +76,9 @@ public class XmlTypeRealize {
.plateNum(0)
.unregularNum(0)
.build();
bodyInfos.put(boxXmlVO.getId(), orderBodyDO);
bodyInfos.put(boxXmlVO.getCode(), orderBodyDO);
}
roomInfos.put(roomXmlVO.getId(), bodyInfos);
roomInfos.put(roomXmlVO.getCode(), bodyInfos);
}
}
return roomInfos;
@@ -96,9 +99,9 @@ public class XmlTypeRealize {
.axisYrotate(Double.valueOf(boxXmlVO.getAxisYrotate()))
.axisZrotate(Double.valueOf(boxXmlVO.getAxisZrotate()))
.build();
basePositions.put(boxXmlVO.getId(), basePosition);
basePositions.put(boxXmlVO.getCode(), basePosition);
}
roomInfos.put(roomXmlVO.getId(), basePositions);
roomInfos.put(roomXmlVO.getCode(), basePositions);
}
}
return roomInfos;
@@ -122,7 +125,7 @@ public class XmlTypeRealize {
.plateNum(0)
.unregularNum(0)
.build();
groupInfos.put(groupXmlVO.getId(), groupDO);
groupInfos.put(groupXmlVO.getCode(), groupDO);
}
}
return groupInfos;
@@ -179,7 +182,7 @@ public class XmlTypeRealize {
.id(rawGoodsId)
.organId(organId)
.orderId(orderId)
.rawGoodsId(plateXmlVO.getItemNo())
.rawGoodsId(plateXmlVO.getItemCode())
.goodsName(plateXmlVO.getName())
.material(plateXmlVO.getMaterial())
.color(plateXmlVO.getCoatingObverse())
@@ -195,7 +198,7 @@ public class XmlTypeRealize {
.organId(organId)
.orderId(orderId)
.rawGoodsId(String.valueOf(rawGoodsId))
.goodsId(plateXmlVO.getItemNo())
.goodsId(plateXmlVO.getItemCode())
.goodsName(plateXmlVO.getName())
.material(plateXmlVO.getMaterial())
.color(plateXmlVO.getCoatingObverse())
@@ -304,14 +307,14 @@ public class XmlTypeRealize {
EdgingXmlVOS edgingXmlVOS = accessoryXmlVO.getEdgingXmlVOS();
for (EdgingXmlVO edgingXmlVO : edgingXmlVOS.getEdgingXmlVOList()) {
Map<String,Long> idMap = getId(edgingXmlVO.getRoomId(), edgingXmlVO.getBoxId(), roomInfos, edgingXmlVO.getGroupId(), groupInfos, 0.0, 0.0, orderId, organId);
Map<String,Long> idMap = getId(edgingXmlVO.getRoomCode(), edgingXmlVO.getBoxCode(), roomInfos, edgingXmlVO.getGroupCode(), groupInfos, 0.0, 0.0, orderId, organId);
Long partsId = (Long) identifierGenerator.nextId(null);
orderPartsMap.put(edgingXmlVO.getId(), OrderPartsAddVO.builder()
orderPartsMap.put(edgingXmlVO.getItemCode(), OrderPartsAddVO.builder()
.id(partsId)
.organId(organId)
.orderId(orderId)
.goodsId(edgingXmlVO.getItemNo())
.goodsId(edgingXmlVO.getItemCode())
.factory(edgingXmlVO.getManufacturer())
.brand(edgingXmlVO.getBrand())
.name(edgingXmlVO.getName())
@@ -328,7 +331,7 @@ public class XmlTypeRealize {
.num(Double.valueOf(edgingXmlVO.getCount()))
.build());
orderItemMap.put(edgingXmlVO.getId(), OrderItemDO.builder()
orderItemMap.put(edgingXmlVO.getItemCode(), OrderItemDO.builder()
.id((Long) identifierGenerator.nextId(null))
.organId(organId)
.orderId(orderId)
@@ -339,7 +342,7 @@ public class XmlTypeRealize {
.bodyId(idMap.get("bodyId"))
.num(Double.valueOf(edgingXmlVO.getCount()))
.build());
orderPartsDOMap.put(edgingXmlVO.getId(), OrderPartsDO.builder()
orderPartsDOMap.put(edgingXmlVO.getItemCode(), OrderPartsDO.builder()
.id(partsId)
.organId(organId)
.orderId(orderId)
@@ -353,7 +356,7 @@ public class XmlTypeRealize {
.build());
if (edgingXmlVO.getRemarkXmlVOS() != null && edgingXmlVO.getRemarkXmlVOS().getRemarkXmlVOList() != null && edgingXmlVO.getRemarkXmlVOS().getRemarkXmlVOList().size() > 0) {
orderPartsRemarks.put(edgingXmlVO.getId(), OrderPartsRemark.builder()
orderPartsRemarks.put(edgingXmlVO.getItemCode(), OrderPartsRemark.builder()
.partsId(partsId)
.orderId(orderId)
.remark(edgingXmlVO.getRemarkXmlVOS().toString())
@@ -365,15 +368,15 @@ public class XmlTypeRealize {
HardwareXmlVOS hardwareXmlVOS = accessoryXmlVO.getHardwareXmlVOS();
for (HardwareXmlVO hardwareXmlVO : hardwareXmlVOS.getHardwareXmlVOList()) {
Map<String,Long> idMap = getId(hardwareXmlVO.getRoomId(), hardwareXmlVO.getBoxId(), roomInfos, hardwareXmlVO.getGroupId(), groupInfos, 0.0, 0.0,orderId, organId);
Map<String,Long> idMap = getId(hardwareXmlVO.getRoomCode(), hardwareXmlVO.getBoxCode(), roomInfos, hardwareXmlVO.getGroupCode(), groupInfos, 0.0, 0.0,orderId, organId);
Long partsId = (Long) identifierGenerator.nextId(null);
orderPartsMap.put(hardwareXmlVO.getId(), OrderPartsAddVO.builder()
orderPartsMap.put(hardwareXmlVO.getItemCode(), OrderPartsAddVO.builder()
.id(partsId)
.organId(organId)
.type(hardwareXmlVO.getType())
.orderId(orderId)
.goodsId(hardwareXmlVO.getItemNo())
.goodsId(hardwareXmlVO.getItemCode())
.factory(hardwareXmlVO.getManufacturer())
.brand(hardwareXmlVO.getBrand())
.name(hardwareXmlVO.getName())
@@ -387,11 +390,11 @@ public class XmlTypeRealize {
.shelf(hardwareXmlVO.getShelf())
.color(hardwareXmlVO.getColor())
.num(Double.valueOf(hardwareXmlVO.getCount()))
.roomId(hardwareXmlVO.getRoomId())
.bodyId(hardwareXmlVO.getBoxId())
.roomId(hardwareXmlVO.getRoomCode())
.bodyId(hardwareXmlVO.getBoxCode())
.isComposite(false)
.build());
orderItemMap.put(hardwareXmlVO.getId(), OrderItemDO.builder()
orderItemMap.put(hardwareXmlVO.getItemCode(), OrderItemDO.builder()
.id((Long) identifierGenerator.nextId(null))
.organId(organId)
.orderId(orderId)
@@ -402,7 +405,7 @@ public class XmlTypeRealize {
.bodyId(idMap.get("bodyId"))
.num(Double.valueOf(hardwareXmlVO.getCount()))
.build());
orderPartsDOMap.put(hardwareXmlVO.getId(), OrderPartsDO.builder()
orderPartsDOMap.put(hardwareXmlVO.getItemCode(), OrderPartsDO.builder()
.id(partsId)
.organId(organId)
.orderId(orderId)
@@ -415,7 +418,7 @@ public class XmlTypeRealize {
.isComposite(false)
.build());
if (hardwareXmlVO.getRemarkXmlVOS() != null && hardwareXmlVO.getRemarkXmlVOS().getRemarkXmlVOList() != null && hardwareXmlVO.getRemarkXmlVOS().getRemarkXmlVOList().size() > 0) {
orderPartsRemarks.put(hardwareXmlVO.getId(), OrderPartsRemark.builder()
orderPartsRemarks.put(hardwareXmlVO.getItemCode(), OrderPartsRemark.builder()
.partsId(partsId)
.orderId(orderId)
.remark(hardwareXmlVO.getRemarkXmlVOS().toString())
@@ -429,15 +432,15 @@ public class XmlTypeRealize {
for (AssemblyXmlVO assemblyXmlVO : assemblieXmlVOS.getAssemblyXmlVOList()) {
if (assemblyXmlVO != null && assemblyXmlVO.toString().length() > 0) {
Map<String,Long> idMap = getId(assemblyXmlVO.getRoomId(), assemblyXmlVO.getBoxId(), roomInfos, assemblyXmlVO.getGroupId(), groupInfos, 0.0, 0.0, orderId, organId);
Map<String,Long> idMap = getId(assemblyXmlVO.getRoomCode(), assemblyXmlVO.getBoxCode(), roomInfos, assemblyXmlVO.getGroupCode(), groupInfos, 0.0, 0.0, orderId, organId);
Long partsId = (Long) identifierGenerator.nextId(null);
orderPartsMap.put(assemblyXmlVO.getId(), OrderPartsAddVO.builder()
orderPartsMap.put(assemblyXmlVO.getItemCode(), OrderPartsAddVO.builder()
.id(partsId)
.organId(organId)
.orderId(orderId)
.type(assemblyXmlVO.getType())
.goodsId(assemblyXmlVO.getItemNo())
.goodsId(assemblyXmlVO.getItemCode())
.factory(assemblyXmlVO.getManufacturer())
.brand(assemblyXmlVO.getBrand())
.name(assemblyXmlVO.getName())
@@ -451,11 +454,11 @@ public class XmlTypeRealize {
.unit((assemblyXmlVO.getUnit()))
.warehouse(assemblyXmlVO.getWarehouse())
.shelf(assemblyXmlVO.getShelf())
.roomId(assemblyXmlVO.getRoomId())
.bodyId(assemblyXmlVO.getBoxId())
.roomId(assemblyXmlVO.getRoomCode())
.bodyId(assemblyXmlVO.getBoxCode())
.isComposite(true)
.build());
orderItemMap.put(assemblyXmlVO.getId(), OrderItemDO.builder()
orderItemMap.put(assemblyXmlVO.getItemCode(), OrderItemDO.builder()
.id((Long) identifierGenerator.nextId(null))
.organId(organId)
.orderId(orderId)
@@ -466,7 +469,7 @@ public class XmlTypeRealize {
.bodyId(idMap.get("bodyId"))
.num(Double.valueOf(assemblyXmlVO.getCount()))
.build());
orderPartsDOMap.put(assemblyXmlVO.getId(), OrderPartsDO.builder()
orderPartsDOMap.put(assemblyXmlVO.getItemCode(), OrderPartsDO.builder()
.id(partsId)
.organId(organId)
.orderId(orderId)
@@ -479,7 +482,7 @@ public class XmlTypeRealize {
.isComposite(true)
.build());
if (assemblyXmlVO.getRemarkXmlVOS() != null && assemblyXmlVO.getRemarkXmlVOS().getRemarkXmlVOList() != null && assemblyXmlVO.getRemarkXmlVOS().getRemarkXmlVOList().size() > 0) {
orderPartsRemarks.put(assemblyXmlVO.getId(), OrderPartsRemark.builder()
orderPartsRemarks.put(assemblyXmlVO.getItemCode(), OrderPartsRemark.builder()
.partsId(partsId)
.orderId(orderId)
.remark(assemblyXmlVO.getRemarkXmlVOS().toString())
@@ -521,8 +524,8 @@ public class XmlTypeRealize {
}else {
plateNum = 1.0;
}
Map<String,Long> idMap = getId(blockXmlVO.getRoomId(), blockXmlVO.getBoxId(), roomInfos, blockXmlVO.getGroupId(), groupInfos, plateNum, unregularNum, orderId, organId);
BasePosition boxBasePoint = boxBasePositionMap.get(blockXmlVO.getRoomId()).get(blockXmlVO.getBoxId()).setBasePoint(String.valueOf(idMap.get("bodyId")));
Map<String,Long> idMap = getId(blockXmlVO.getRoomCode(), blockXmlVO.getBoxCode(), roomInfos, blockXmlVO.getGroupCode(), groupInfos, plateNum, unregularNum, orderId, organId);
BasePosition boxBasePoint = boxBasePositionMap.get(blockXmlVO.getRoomCode()).get(blockXmlVO.getBoxCode()).setBasePoint(String.valueOf(idMap.get("bodyId")));
PlateDO plateDO = PlateDO.builder()
.id(plateId)
@@ -547,7 +550,7 @@ public class XmlTypeRealize {
.isSpecialShaped(convertToBoolean(blockXmlVO.getUnregular()))
.build();
orderItemMap.put(blockXmlVO.getId(), OrderItemDO.builder()
orderItemMap.put(blockXmlVO.getProductionCode(), OrderItemDO.builder()
.id((Long) identifierGenerator.nextId(null))
.organId(organId)
.orderId(orderId)
@@ -561,7 +564,7 @@ public class XmlTypeRealize {
// 基点坐标获取
BasePosition plateBasePosition = BasePosition.builder()
.basePoint(blockXmlVO.getId())
.basePoint(blockXmlVO.getProductionCode())
.basePointX(Double.valueOf(blockXmlVO.getBasePointX()))
.basePointY(Double.valueOf(blockXmlVO.getBasePointY()))
.basePointZ(Double.valueOf(blockXmlVO.getBasePointZ()))
@@ -573,7 +576,7 @@ public class XmlTypeRealize {
.plateId(plateId)
.plateNo(plateDO.getPlateNo())
.name(plateDO.getName())
.customPlateNo(blockXmlVO.getDesignNo())
.customPlateNo(blockXmlVO.getDesignCode())
.texture(plateDO.getTexture())
.typographicFace(plateDO.getHoleFace())
.openDoorType(plateDO.getOpenDoorType())
@@ -602,8 +605,10 @@ public class XmlTypeRealize {
addPointDetail(plateDO, plateDetail, blockXmlVO.getCuttingOutlineXmlVO());
// 孔数据
addHole(plateDO, plateDetail, blockXmlVO.getHoleXmlVOS());
// 造型数据
// 造型数据 (槽)
addContourDetail(plateDO, plateDetail, blockXmlVO.getGrooveXmlVOS());
// 造型数据(孤岛)
addIslandDetail(plateDetail, blockXmlVO.getIsletXmlVOS());
// 小板备注信息
addRemark(plateDO, plateDetail, blockXmlVO);
@@ -616,6 +621,20 @@ public class XmlTypeRealize {
return plateDetails;
}
private void addIslandDetail(PlateDetail plateDetail, IsletXmlVOS isletXmlVOS) {
if (isletXmlVOS != null && ObjectUtils.allNull(isletXmlVOS)) {
if (isletXmlVOS.getIsletXmlVOList() != null && isletXmlVOS.getIsletXmlVOList().size() > 0) {
for (IsletXmlVO isletXmlVO : isletXmlVOS.getIsletXmlVOList()) {
ModelDetail modelDetail = ModelDetail.builder()
.id(Integer.valueOf(isletXmlVO.getId()))
.parentId(Integer.valueOf(isletXmlVO.getParentId()))
.pointList(addPointDetail(isletXmlVO.getPointXmlVOS())).build();
plateDetail.getContourDetail().add(modelDetail);
}
}
}
}
// 是否转换布尔值
public Boolean convertToBoolean(String str) {
Boolean isTrue = false;
@@ -642,7 +661,7 @@ public class XmlTypeRealize {
for (PointXmlVO pointXmlVO : outlineXmlVO.getPointXmlVOList()) {
Double x = Double.parseDouble(pointXmlVO.getPointX());
Double y = Double.parseDouble(pointXmlVO.getPointY());
OrderPartsAddVO edging = (OrderPartsAddVO) edgIng.get(pointXmlVO.getEdgingId());
OrderPartsAddVO edging = (OrderPartsAddVO) edgIng.get(pointXmlVO.getItemCode());
if (edging != null){
size = edging.getThickness();
}
@@ -663,7 +682,7 @@ public class XmlTypeRealize {
}
plateDetail.getRawPointDetail().add(PointDetail.builder()
.id(pointXmlVO.getId())
// .id(pointXmlVO.getId())
.pointX(x)
.pointY(y)
.curve(Double.parseDouble(pointXmlVO.getCurvature()))
@@ -686,7 +705,7 @@ public class XmlTypeRealize {
if (cuttingOutlineXmlVO.getPointXmlVOList() != null && cuttingOutlineXmlVO.getPointXmlVOList().size() > 0) {
for (PointXmlVO pointXmlVO : cuttingOutlineXmlVO.getPointXmlVOList()) {
plateDetail.getPointDetail().add(PointDetail.builder()
.id(pointXmlVO.getId())
// .id(pointXmlVO.getId())
.pointX(Double.parseDouble(pointXmlVO.getPointX()))
.pointY(Double.parseDouble(pointXmlVO.getPointY()))
.curve(Double.parseDouble(pointXmlVO.getCurvature()))
@@ -709,8 +728,8 @@ public class XmlTypeRealize {
if (holeXmlVOS.getHoleXmlVOList() != null && holeXmlVOS.getHoleXmlVOList().size() > 0) {
for (HoleXmlVO holeXmlVO : holeXmlVOS.getHoleXmlVOList()) {
DictDataRespDTO faceType = dictDataApi.parseDictData(DictTypeConstants.HOLE_FACE, holeXmlVO.getFace()).getData();
Integer faceTypeValue = faceType != null ? Integer.valueOf(faceType.getValue()) : 2;
Integer direction = Integer.valueOf(dictDataApi.parseDictData(DictTypeConstants.HOLE_DIR, holeXmlVO.getDirection()).getData().getValue());
Integer faceTypeValue = faceType != null ? Integer.parseInt(faceType.getValue()) : 2;
Integer direction = Integer.valueOf(dictDataApi.parseDictData(DictTypeConstants.HOLE_DIRECTION, holeXmlVO.getDirection()).getData().getValue());
DictDataRespDTO holeType = holeXmlVO.getType() == null ? null : dictDataApi.parseDictData(DictTypeConstants.HOLE_TYPE, holeXmlVO.getType()).getData();
Double radius = holeXmlVO.getDiameter() != null ? Double.parseDouble(holeXmlVO.getDiameter()) / 2 : 0;
Double depth = holeXmlVO.getDepth() != null ? Double.parseDouble(holeXmlVO.getDepth()) : 0;
@@ -748,14 +767,21 @@ public class XmlTypeRealize {
}
if (grooveXmlVOS.getGrooveXmlVOList() != null && grooveXmlVOS.getGrooveXmlVOList().size() > 0) {
for (GrooveXmlVO grooveXmlVO : grooveXmlVOS.getGrooveXmlVOList()) {
Integer faceType = Integer.valueOf(dictDataApi.parseDictData(DictTypeConstants.HOLE_FACE, grooveXmlVO.getFace()).getData().getValue());
int faceType = Integer.parseInt(dictDataApi.parseDictData(DictTypeConstants.HOLE_FACE, grooveXmlVO.getFace()).getData().getValue());
faceType = faceType == 0 || faceType == 1 ? faceType : 2;
ModelDetail modelDetail = ModelDetail.builder()
.id(Integer.valueOf(grooveXmlVO.getId()))
.parentId(Integer.valueOf(grooveXmlVO.getParentId()))
.type(grooveXmlVO.getType())
.faceType(faceType)
.width(Double.parseDouble(grooveXmlVO.getWidth()))
.length(Double.parseDouble(grooveXmlVO.getLength()))
.depth(Double.parseDouble(grooveXmlVO.getDepth()))
.knifeName(grooveXmlVO.getToolName())
.knifeRadius(Double.parseDouble(grooveXmlVO.getToolDiameter()) / 2)
.round(Double.parseDouble(grooveXmlVO.getRound()))
.redundance(Double.parseDouble(grooveXmlVO.getRedundance()))
.tangentAngle(Double.parseDouble(grooveXmlVO.getTangentAngle()))
.originModeling(getOriginModelingData(grooveXmlVO))
.pointList(addPointDetail(grooveXmlVO.getPointXmlVOS()))
.offSetList(addOffSetDetail(grooveXmlVO.getOffsetLineXmlVOS())).build();
@@ -782,7 +808,7 @@ public class XmlTypeRealize {
if (pointXmlVOS != null && pointXmlVOS.getPointXmlVOList() != null && pointXmlVOS.getPointXmlVOList().size() > 0) {
for (PointXmlVO pointXmlVO : pointXmlVOS.getPointXmlVOList()) {
pointLists.add(PointList.builder()
.pointId(Integer.valueOf(pointXmlVO.getId()))
// .pointId(Integer.valueOf(pointXmlVO.getId()))
.pointX(Double.parseDouble(pointXmlVO.getPointX())).
pointY(Double.parseDouble(pointXmlVO.getPointY()))
.pointZ(Double.parseDouble(pointXmlVO.getPointZ()))
@@ -801,7 +827,7 @@ public class XmlTypeRealize {
if (offsetLineXmlVOS != null && offsetLineXmlVOS.getOffsetLineXmlVOList() != null && offsetLineXmlVOS.getOffsetLineXmlVOList().size() > 0) {
for (OffsetLineXmlVO offsetLineXmlVO : offsetLineXmlVOS.getOffsetLineXmlVOList()) {
offSetList.add(OffSetList.builder()
.id(offsetLineXmlVO.getId())
// .id(offsetLineXmlVO.getId())
.value(Double.parseDouble(offsetLineXmlVO.getOffset()))
.depth(Double.parseDouble(offsetLineXmlVO.getDepth()))
.angle(Double.parseDouble(offsetLineXmlVO.getTangentAngle()))