mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
api数据
This commit is contained in:
+2
-1
@@ -51,8 +51,9 @@ public interface ErrorCodeConstants {
|
||||
ErrorCode RAW_GOODS_NOT_EXISTS = new ErrorCode(1_002_029_005, "生产单中未用到此板材");
|
||||
ErrorCode ORDER_STATUS_ERROR = new ErrorCode(1_002_029_006, "生产单不允许删除");
|
||||
ErrorCode APP_TOKEN_ERROR = new ErrorCode(1_002_029_007, "token获取失败");
|
||||
ErrorCode PLATE_DATA_ERROR = new ErrorCode(1_002_029_008, "板材数据获取错误");
|
||||
ErrorCode PLATE_PLAN_DATA_ERROR = new ErrorCode(1_002_029_008, "板材数据获取错误");
|
||||
ErrorCode PARTS_DATA_ERROR = new ErrorCode(1_002_029_009, "配件数据获取错误");
|
||||
ErrorCode BODY_DATA_ERROR = new ErrorCode(1_002_029_010, "柜体数据获取错误");
|
||||
ErrorCode GOODS_DATA_ERROR = new ErrorCode(1_002_029_011, "商品信息获取错误");
|
||||
ErrorCode PLATE_DATA_ERROR = new ErrorCode(1_002_029_012, "板材数据获取错误");
|
||||
}
|
||||
|
||||
+19
-27
@@ -2,6 +2,7 @@ package com.cf.imes.module.executor.controller.admin.order;
|
||||
|
||||
import com.alibaba.excel.EasyExcel;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderModuleRespVO;
|
||||
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderPageReqVO;
|
||||
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderRespVO;
|
||||
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderSaveReqVO;
|
||||
@@ -63,9 +64,6 @@ public class OrderController {
|
||||
@Resource
|
||||
private OrderService orderService;
|
||||
|
||||
@Resource
|
||||
private ApiOrderService apiOrderService;
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(OrderController.class);
|
||||
|
||||
@PostMapping("/create")
|
||||
@@ -101,16 +99,6 @@ public class OrderController {
|
||||
return success(BeanUtils.toBean(order, OrderRespVO.class));
|
||||
}
|
||||
|
||||
// 获取当前条件下所有生产单信息
|
||||
// @GetMapping("/allOrder")
|
||||
// @Operation(summary = "获得所有生产单")
|
||||
// @PreAuthorize("@ss.hasPermission('executor:order:query')")
|
||||
// public CommonResult<PageResult<OrderRespVO>> getAllOrder(@Valid OrderPageReqVO pageReqVO) {
|
||||
// pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
// PageResult<OrderDO> pageResult = orderService.getOrderPage(pageReqVO);
|
||||
// return success(BeanUtils.toBean(pageResult, OrderRespVO.class));
|
||||
// }
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得生产单分页")
|
||||
@PreAuthorize("@ss.hasPermission('executor:order:query')")
|
||||
@@ -140,15 +128,9 @@ public class OrderController {
|
||||
fis.read(buffer);
|
||||
fis.close();
|
||||
|
||||
// 清空response
|
||||
response.reset();
|
||||
// 设置response的Header
|
||||
response.setCharacterEncoding("UTF-8");
|
||||
//Content-Disposition的作用:告知浏览器以何种方式显示响应返回的文件,用浏览器打开还是以附件的形式下载到本地保存
|
||||
//attachment表示以附件方式下载 inline表示在线打开 "Content-Disposition: inline; filename=文件名.mp3"
|
||||
// filename表示文件的默认名称,因为网络传输只支持URL编码的相关支付,因此需要将文件名URL编码后进行传输,前端收到后需要反编码才能获取到真正的名称
|
||||
response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(filename, "UTF-8"));
|
||||
// 告知浏览器文件的大小
|
||||
response.addHeader("Content-Length", "" + file.length());
|
||||
OutputStream outputStream = new BufferedOutputStream(response.getOutputStream());
|
||||
response.setContentType("application/octet-stream");
|
||||
@@ -221,20 +203,30 @@ public class OrderController {
|
||||
}
|
||||
|
||||
|
||||
// 获得 房间和柜体 信息
|
||||
@GetMapping("/get-room")
|
||||
@Operation(summary = "获得房间——柜体 基本信息")
|
||||
@Operation(summary = "生产单详情-房间、柜体信息")
|
||||
@Parameter(name = "orderId", description = "生产单编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('executor:order:query')")
|
||||
public CommonResult<Map<Long, List<OrderBodyRespVO>>> getRoom(@RequestParam("orderId") Long orderId) {
|
||||
Map<Long, List<OrderBodyRespVO>> orderBodyMap = orderService.getOrderBody(orderId);
|
||||
public CommonResult<List<OrderBodyRespVO>> getRoom(@RequestParam("orderId") Long orderId) {
|
||||
List<OrderBodyRespVO> orderBodyMap = orderService.getOrderBody(orderId);
|
||||
return success(orderBodyMap);
|
||||
}
|
||||
|
||||
@GetMapping("/get-module")
|
||||
@Operation(summary = "生产单详情-模块全部数量信息")
|
||||
@Parameters({
|
||||
@Parameter(name = "orderId", description = "生产单编号", example = "1024"),
|
||||
@Parameter(name = "roomId", description = "房间编号", example = "1024"),
|
||||
@Parameter(name = "bodyId", description = "柜体编号", example = "1024")
|
||||
})
|
||||
@PreAuthorize("@ss.hasPermission('executor:order:query')")
|
||||
public CommonResult<List<OrderModuleRespVO>> getModule(@RequestParam("orderId") Long orderId) {
|
||||
List<OrderModuleRespVO> moduleDOList = orderService.getModule(orderId);
|
||||
return success(moduleDOList);
|
||||
}
|
||||
|
||||
// 获得模组 —— 模块信息
|
||||
@GetMapping("/get-moduleDetails")
|
||||
@Operation(summary = "获得模组——模块信息")
|
||||
@Operation(summary = "生产单详情-模块详细信息")//生产单详情-模块全部数量信息
|
||||
@Parameters({
|
||||
@Parameter(name = "orderId", description = "生产单编号", example = "1024"),
|
||||
@Parameter(name = "roomId", description = "房间编号", example = "1024"),
|
||||
@@ -244,7 +236,7 @@ public class OrderController {
|
||||
public CommonResult<List<OrderModuleExtraDO>> getModule(@RequestParam("orderId") Long orderId,
|
||||
@RequestParam(value = "roomId", required = false) Long roomId,
|
||||
@RequestParam(value = "bodyId", required = false) Long bodyId) {
|
||||
List<OrderModuleExtraDO> moduleDOList = orderService.getModule(orderId, roomId, bodyId);
|
||||
List<OrderModuleExtraDO> moduleDOList = orderService.getModuleDetail(orderId, roomId, bodyId);
|
||||
return success(moduleDOList);
|
||||
}
|
||||
|
||||
@@ -270,7 +262,7 @@ public class OrderController {
|
||||
return success(BeanUtils.toBean(orderService.getBody(orderId), OrderBodyRespVO.class));
|
||||
}
|
||||
|
||||
// 测试接口
|
||||
|
||||
@GetMapping("getApiData")
|
||||
@Operation(summary = "api数据获取")
|
||||
@PreAuthorize("@ss.hasPermission('executor:order:getApiData')")
|
||||
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
package com.cf.imes.module.executor.controller.admin.order.vo.order;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Schema(description = "管理后台 - 生产单表 order Response VO")
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class OrderModuleRespVO {
|
||||
|
||||
@Schema(description = "生产单号", requiredMode = Schema.RequiredMode.REQUIRED, example = "20230414026120")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "房间Id", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long roomId;
|
||||
|
||||
@Schema(description = "柜体Id", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long bodyId;
|
||||
|
||||
@Schema(description = "加工组Id", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Long groupId;
|
||||
|
||||
@Schema(description = "柜体板块数量", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Integer bodyNum;
|
||||
|
||||
@Schema(description = "加工组板块数量", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private Integer groupNum;
|
||||
}
|
||||
+4
-4
@@ -39,14 +39,14 @@ public class OrderProcessController {
|
||||
private OrderProcessService orderProcessService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建生产单工序")
|
||||
@Operation(summary = "创建生产单工序组")
|
||||
@PreAuthorize("@ss.hasPermission('executor:order-process:create')")
|
||||
public CommonResult<Long> createOrderProcess(@Valid @RequestBody OrderProcessSaveReqVO createReqVO) {
|
||||
return success(orderProcessService.createOrderProcess(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新生产单工序")
|
||||
@Operation(summary = "更新生产单工序组")
|
||||
@PreAuthorize("@ss.hasPermission('executor:order-process:update')")
|
||||
public CommonResult<Boolean> updateOrderProcess(@Valid @RequestBody OrderProcessSaveReqVO updateReqVO) {
|
||||
orderProcessService.updateOrderProcess(updateReqVO);
|
||||
@@ -54,7 +54,7 @@ public class OrderProcessController {
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除生产单工序")
|
||||
@Operation(summary = "删除生产单工序组")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('executor:order-process:delete')")
|
||||
public CommonResult<Boolean> deleteOrderProcess(@RequestParam("id") Long id) {
|
||||
@@ -63,7 +63,7 @@ public class OrderProcessController {
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得生产单工序")
|
||||
@Operation(summary = "获得生产单工序组")
|
||||
@Parameter(name = "orderId", description = "生产单编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('executor:order-process:query')")
|
||||
public CommonResult<OrderProcessRespVO> getOrderProcess(@RequestParam("orderId") Long orderId) {
|
||||
|
||||
-1
@@ -9,7 +9,6 @@ import javax.validation.constraints.*;
|
||||
@Data
|
||||
public class OrderProcessSaveReqVO {
|
||||
|
||||
@Schema(description = "工序 ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "31600")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "生产单号", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
|
||||
+1
-1
@@ -55,7 +55,7 @@ public class OrderBodyDO extends BaseDO {
|
||||
/**
|
||||
* 模块复制数量
|
||||
*/
|
||||
private Double multiNum;
|
||||
private Integer multiNum;
|
||||
/**
|
||||
* 板材数量
|
||||
*/
|
||||
|
||||
+3
-3
@@ -61,15 +61,15 @@ public class OrderGroupDO extends BaseDO {
|
||||
/**
|
||||
* 模块复制数量
|
||||
*/
|
||||
private Short multiNum;
|
||||
private Integer multiNum;
|
||||
/**
|
||||
* 板材数量
|
||||
*/
|
||||
private Double plateNum;
|
||||
private Integer plateNum;
|
||||
/**
|
||||
* 异型数量
|
||||
*/
|
||||
private Short unregularNum;
|
||||
private Integer unregularNum;
|
||||
/**
|
||||
* 文件名
|
||||
*/
|
||||
|
||||
+1
-1
@@ -46,7 +46,7 @@ public class OrderPartsDO extends BaseDO {
|
||||
/**
|
||||
* 配件类型
|
||||
*/
|
||||
private Integer type;
|
||||
private String type;
|
||||
/**
|
||||
* 型号
|
||||
*/
|
||||
|
||||
+32
-14
@@ -1,16 +1,16 @@
|
||||
package com.cf.imes.module.executor.dal.dataobject.ordermodel;
|
||||
|
||||
import com.cf.imes.framework.es.core.dal.ESDocument;
|
||||
import com.cf.imes.module.executor.util.deviseData.HoleDetail;
|
||||
import com.cf.imes.module.executor.util.deviseData.ModelDetail;
|
||||
import com.cf.imes.module.executor.util.deviseData.PointDetail;
|
||||
import com.cf.imes.module.executor.util.deviseData.dataTwo.HoleDetail;
|
||||
import com.cf.imes.module.executor.util.deviseData.dataTwo.ModelDetail;
|
||||
import com.cf.imes.module.executor.util.deviseData.dataTwo.PointDetail;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.checkerframework.checker.units.qual.A;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -28,16 +28,34 @@ public class OrderModelDO extends ESDocument {
|
||||
private Long orderId;
|
||||
@Schema(description = "小板id")
|
||||
private Long plateId;
|
||||
@Schema(description = "轮廓明细列表")
|
||||
private List<ModelDetail> contourDetailList;
|
||||
@Schema(description = "点明细列表")
|
||||
private List<PointDetail> pointDetailList;
|
||||
@Schema(description = "孔明细列表")
|
||||
private List<HoleDetail> holeDetailList;
|
||||
|
||||
@Schema(description = "纹路 纹路(0正纹1可翻转2反纹)")
|
||||
private Integer texture;
|
||||
@Schema(description = "排版面 排钻类型(0正面1反面2随意面)")
|
||||
private Integer typographicFace;
|
||||
@Schema(description = "开门类型 0非门板,1左开,2右开,3上翻,4下翻")
|
||||
private Integer openDoorType; // 字典转换
|
||||
@Schema(description = "小板类型")
|
||||
private String boardType;
|
||||
|
||||
@Schema(description = "偏移量X")
|
||||
private BigDecimal offsetX;
|
||||
@Schema(description = "偏移量Y")
|
||||
private BigDecimal offsetY;
|
||||
|
||||
@Schema(description = "是否有二维刀路")
|
||||
private Boolean has2DModel;
|
||||
@Schema(description = "是否有三维刀路")
|
||||
private Boolean has3DModel;
|
||||
|
||||
@Schema(description = "点明细,表示小板外围轮廓的几个转折点(不含封边)")
|
||||
private List<PointDetail> pointDetail;
|
||||
@Schema(description = "原始点明细列表")
|
||||
private List<PointDetail> rawPointDetailList;
|
||||
@Schema(description = "侧面轮廓明细列表")
|
||||
private List<ModelDetail> sideModelDetailList;
|
||||
private List<PointDetail> rawPointDetail;
|
||||
@Schema(description = "孔明细列表")
|
||||
private List<HoleDetail> holeDetail;
|
||||
@Schema(description = "造型明细")
|
||||
private List<ModelDetail> contourDetail;
|
||||
@Schema(description = "侧面孔明细列表")
|
||||
private List<HoleDetail> sideHoleDetailList;
|
||||
private List<HoleDetail> sideHoleDetail;
|
||||
}
|
||||
|
||||
+3
-3
@@ -57,7 +57,7 @@ public class PlateDO extends BaseDO {
|
||||
/**
|
||||
* 商品 ID
|
||||
*/
|
||||
private String goodsId;
|
||||
private Long goodsId;
|
||||
/**
|
||||
* 宽度
|
||||
*/
|
||||
@@ -149,11 +149,11 @@ public class PlateDO extends BaseDO {
|
||||
/**
|
||||
* 异型偏移 x
|
||||
*/
|
||||
private Double offsetX;
|
||||
private BigDecimal offsetX;
|
||||
/**
|
||||
* 异型偏移 y
|
||||
*/
|
||||
private Double offsetY;
|
||||
private BigDecimal offsetY;
|
||||
/**
|
||||
* 是否孤形对角
|
||||
*/
|
||||
|
||||
+12
@@ -9,19 +9,31 @@ import org.springframework.web.bind.annotation.*;
|
||||
@FeignClient(url = "https://chenfeng.tech:7779", name = "apiOrderService")
|
||||
public interface ApiOrderService {
|
||||
|
||||
// 登陆token
|
||||
@RequestMapping(value = "/Api-Oauth-token",method = RequestMethod.GET)
|
||||
JSONObject getApiTokenMessage(@RequestParam("appid") String appid, @RequestParam("appsecret") String appsecret);
|
||||
|
||||
// 订单板件生产数据
|
||||
@RequestMapping(value = "/Api-erpOrders-orderPlanData",method = RequestMethod.POST)
|
||||
JSONObject getApiOrderMessage(@RequestParam("token") String token, @RequestBody JSONObject json);
|
||||
|
||||
// 配件生产数据
|
||||
@RequestMapping(value = "/Api-erpOrders-partsList",method = RequestMethod.POST)
|
||||
JSONObject getApiOrderPartsMessage(@RequestParam("token") String token, @RequestBody JSONObject json);
|
||||
|
||||
// 房间柜体
|
||||
@RequestMapping(value = "/Api-erpOrders-boxsList",method = RequestMethod.POST)
|
||||
JSONObject getApiOrderBodyMessage(@RequestParam("token") String token, @RequestBody JSONObject json);
|
||||
|
||||
// 商品数据
|
||||
@RequestMapping(value = "/Api-erpOrders-goodsList",method = RequestMethod.POST)
|
||||
JSONObject getApiOrderGoodsMessage(@RequestParam("token") String token, @RequestBody JSONObject json);
|
||||
|
||||
// 加工组数据
|
||||
@RequestMapping(value = "/Api-erpOrders-getModuleTypeList",method = RequestMethod.POST)
|
||||
JSONObject getApiModuleTypeDataMessage(@RequestParam("token") String token, @RequestBody JSONObject json);
|
||||
|
||||
// 板件数据
|
||||
@RequestMapping(value = "/Api-erpOrders-blocksList",method = RequestMethod.POST)
|
||||
JSONObject getApiBlocksDataMessage(@RequestParam("token") String token, @RequestBody JSONObject json);
|
||||
}
|
||||
|
||||
+53
-36
@@ -8,6 +8,7 @@ import com.cf.imes.framework.common.util.json.JsonUtils;
|
||||
import com.cf.imes.framework.es.core.service.ESDocumentService;
|
||||
import com.cf.imes.framework.mybatis.core.generator.SnowFlakeGenerator;
|
||||
import com.cf.imes.framework.organ.core.context.OrganContextHolder;
|
||||
import com.cf.imes.module.executor.dal.dataobject.order.OrderDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.orderBody.OrderBodyDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.orderGroup.OrderGroupDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.orderItem.OrderItemDO;
|
||||
@@ -16,6 +17,7 @@ import com.cf.imes.module.executor.dal.dataobject.orderParts.OrderPartsDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.ordermodel.OrderModelDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.plate.PlateDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.rawgoods.RawGoodsDO;
|
||||
import com.cf.imes.module.executor.dal.mysql.order.OrderMapper;
|
||||
import com.cf.imes.module.executor.dal.mysql.orderBody.OrderBodyMapper;
|
||||
import com.cf.imes.module.executor.dal.mysql.orderGroup.OrderGroupMapper;
|
||||
import com.cf.imes.module.executor.dal.mysql.orderItem.OrderItemMapper;
|
||||
@@ -28,6 +30,7 @@ import com.cf.imes.module.executor.util.deviseData.Detail;
|
||||
import com.cf.imes.module.executor.util.deviseData.IBoardProdInfo;
|
||||
import com.cf.imes.module.executor.util.deviseData.PartsModuleExtra;
|
||||
import com.cf.imes.module.executor.util.deviseData.PlateModuleExtra;
|
||||
import com.cf.imes.module.executor.util.deviseData.dataTwo.PlateDetail;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -49,6 +52,9 @@ public class OrderInputProcessor {
|
||||
private IdentifierGenerator identifierGenerator;
|
||||
/*private IdentifierGenerator identifierGenerator = new SnowFlakeGenerator(0, 0);*/
|
||||
|
||||
@Resource
|
||||
private OrderMapper orderMapper;
|
||||
|
||||
@Resource
|
||||
private RawGoodsMapper rawGoodsMapper;
|
||||
|
||||
@@ -105,7 +111,7 @@ public class OrderInputProcessor {
|
||||
.width(e.getWidth())
|
||||
.height(e.getHeight())
|
||||
.depth(e.getDepth())
|
||||
.multiNum(e.getMultiNum().doubleValue())
|
||||
// .multiNum(e.getMultiNum().doubleValue())
|
||||
.filename("")
|
||||
.remark("")
|
||||
.build(),
|
||||
@@ -195,23 +201,23 @@ public class OrderInputProcessor {
|
||||
if (goodType == 1) {
|
||||
PlateDO plateDO = PlateDO.builder()
|
||||
.id(identifierGenerator.nextId(null).longValue())
|
||||
.goodsId(rawGoodsDO.getRawGoodsId())
|
||||
// .goodsId(rawGoodsDO.getRawGoodsId())
|
||||
.orderId(orderId)
|
||||
.name(e.getIBoardProdInfo().getName())
|
||||
.plateNo(e.getIBoardProdInfo().getPlateNo())
|
||||
//.type(e.getIBoardProdInfo().)
|
||||
.goodsId(rawGoodsDO.getRawGoodsId())
|
||||
.height(new BigDecimal(e.getIBoardProdInfo().getHeight()))
|
||||
.width(new BigDecimal(e.getIBoardProdInfo().getWidth()))
|
||||
.thickness(new BigDecimal(e.getIBoardProdInfo().getThickness().toString()))
|
||||
.splitHeight(new BigDecimal(e.getIBoardProdInfo().getSplitHeight()))
|
||||
.splitWidth(new BigDecimal(e.getIBoardProdInfo().getSplitWidth()))
|
||||
.splitThickness(new BigDecimal(e.getIBoardProdInfo().getThickness().toString()))
|
||||
.sealLeft(new BigDecimal(e.getIBoardProdInfo().getSealLeft()))
|
||||
.sealRight(new BigDecimal(e.getIBoardProdInfo().getSealRight()))
|
||||
.sealUp(new BigDecimal(e.getIBoardProdInfo().getSealUp()))
|
||||
.sealDown(new BigDecimal(e.getIBoardProdInfo().getSealDown()))
|
||||
.area(new BigDecimal( String.valueOf(e.getIBoardProdInfo().getWidth())).multiply( new BigDecimal(e.getIBoardProdInfo().getHeight())))
|
||||
// .goodsId(rawGoodsDO.getRawGoodsId())
|
||||
// .height(new BigDecimal(e.getIBoardProdInfo().getHeight()))
|
||||
// .width(new BigDecimal(e.getIBoardProdInfo().getWidth()))
|
||||
// .thickness(new BigDecimal(e.getIBoardProdInfo().getThickness().toString()))
|
||||
// .splitHeight(new BigDecimal(e.getIBoardProdInfo().getSplitHeight()))
|
||||
// .splitWidth(new BigDecimal(e.getIBoardProdInfo().getSplitWidth()))
|
||||
// .splitThickness(new BigDecimal(e.getIBoardProdInfo().getThickness().toString()))
|
||||
// .sealLeft(new BigDecimal(e.getIBoardProdInfo().getSealLeft()))
|
||||
// .sealRight(new BigDecimal(e.getIBoardProdInfo().getSealRight()))
|
||||
// .sealUp(new BigDecimal(e.getIBoardProdInfo().getSealUp()))
|
||||
// .sealDown(new BigDecimal(e.getIBoardProdInfo().getSealDown()))
|
||||
// .area(new BigDecimal( String.valueOf(e.getIBoardProdInfo().getWidth())).multiply( new BigDecimal(e.getIBoardProdInfo().getHeight())))
|
||||
.texture(e.getIBoardProdInfo().getTexture())
|
||||
.type(0)
|
||||
.holeFace(0)
|
||||
@@ -262,7 +268,7 @@ public class OrderInputProcessor {
|
||||
.price(0.0)
|
||||
.isComposite(false)
|
||||
.remark(e.getIBoardProdInfo().getRemark())
|
||||
.type(0)
|
||||
// .type(0)
|
||||
.build();
|
||||
orderItemDO.setType(2);
|
||||
orderItemDO.setPartsId(orderPartsDO.getId());
|
||||
@@ -294,29 +300,40 @@ public class OrderInputProcessor {
|
||||
@Transactional
|
||||
public void batchInsert(Collection<RawGoodsDO> rawGoodsDOS, Collection<OrderBodyDO> orderBodyDOS,
|
||||
Collection<OrderGroupDO> orderGroupDOS, Collection<OrderPartsDO> orderPartsDOS,
|
||||
Collection<PlateDO> plateDOS, Collection<OrderModuleExtraDO> orderModuleExtraDOS, Collection<OrderItemDO> itemDOS) {
|
||||
Collection<PlateDO> plateDOS, Collection<OrderModuleExtraDO> orderModuleExtraDOS,
|
||||
Collection<OrderItemDO> itemDOS, OrderDO orderDO) {
|
||||
if (orderDO != null)
|
||||
orderMapper.insert(orderDO);
|
||||
|
||||
for (int i = 0; i < rawGoodsDOS.size(); i += 1000) {
|
||||
rawGoodsMapper.insertBatch(rawGoodsDOS.stream().skip(i).limit(1000).collect(Collectors.toList()));
|
||||
}
|
||||
for (int i = 0; i < orderBodyDOS.size(); i += 1000) {
|
||||
orderBodyMapper.insertBatch(orderBodyDOS.stream().skip(i).limit(1000).collect(Collectors.toList()));
|
||||
}
|
||||
for (int i = 0; i < orderGroupDOS.size(); i += 1000) {
|
||||
orderGroupMapper.insertBatch(orderGroupDOS.stream().skip(i).limit(1000).collect(Collectors.toList()));
|
||||
}
|
||||
for (int i = 0; i < orderPartsDOS.size(); i += 1000) {
|
||||
orderPartsMapper.insertBatch(orderPartsDOS.stream().skip(i).limit(1000).collect(Collectors.toList()));
|
||||
}
|
||||
for (int i = 0; i < plateDOS.size(); i += 1000) {
|
||||
plateMapper.insertBatch(plateDOS.stream().skip(i).limit(1000).collect(Collectors.toList()));
|
||||
}
|
||||
for (int i = 0; i < orderModuleExtraDOS.size(); i += 1000) {
|
||||
orderModuleExtraMapper.insertBatch(orderModuleExtraDOS.stream().skip(i).limit(1000).collect(Collectors.toList()));
|
||||
}
|
||||
for (int i = 0; i < itemDOS.size(); i += 1000) {
|
||||
orderItemMapper.insertBatch(itemDOS.stream().skip(i).limit(1000).collect(Collectors.toList()));
|
||||
if (rawGoodsDOS != null)
|
||||
for (int i = 0; i < rawGoodsDOS.size(); i += 1000) {
|
||||
rawGoodsMapper.insertBatch(rawGoodsDOS.stream().skip(i).limit(1000).collect(Collectors.toList()));
|
||||
}
|
||||
if (orderBodyDOS != null)
|
||||
for (int i = 0; i < orderBodyDOS.size(); i += 1000) {
|
||||
orderBodyMapper.insertBatch(orderBodyDOS.stream().skip(i).limit(1000).collect(Collectors.toList()));
|
||||
}
|
||||
if (orderGroupDOS != null)
|
||||
for (int i = 0; i < orderGroupDOS.size(); i += 1000) {
|
||||
orderGroupMapper.insertBatch(orderGroupDOS.stream().skip(i).limit(1000).collect(Collectors.toList()));
|
||||
}
|
||||
if (orderPartsDOS != null)
|
||||
for (int i = 0; i < orderPartsDOS.size(); i += 1000) {
|
||||
orderPartsMapper.insertBatch(orderPartsDOS.stream().skip(i).limit(1000).collect(Collectors.toList()));
|
||||
}
|
||||
if (plateDOS != null)
|
||||
for (int i = 0; i < plateDOS.size(); i += 1000) {
|
||||
plateMapper.insertBatch(plateDOS.stream().skip(i).limit(1000).collect(Collectors.toList()));
|
||||
}
|
||||
if (orderModuleExtraDOS != null) {
|
||||
for (int i = 0; i < orderModuleExtraDOS.size(); i += 1000) {
|
||||
orderModuleExtraMapper.insertBatch(orderModuleExtraDOS.stream().skip(i).limit(1000).collect(Collectors.toList()));
|
||||
}
|
||||
}
|
||||
if (itemDOS != null)
|
||||
for (int i = 0; i < itemDOS.size(); i += 1000) {
|
||||
orderItemMapper.insertBatch(itemDOS.stream().skip(i).limit(1000).collect(Collectors.toList()));
|
||||
}
|
||||
|
||||
//rawGoodsMapper.insertBatch(rawGoodsDOS);
|
||||
//orderBodyMapper.insertBatch(orderBodyDOS);
|
||||
|
||||
+10
-16
@@ -4,15 +4,11 @@ import javax.validation.*;
|
||||
|
||||
import com.cf.imes.module.executor.controller.admin.order.vo.order.*;
|
||||
import com.cf.imes.module.executor.controller.admin.order.vo.product.OrderBodyRespVO;
|
||||
import com.cf.imes.module.executor.controller.admin.order.vo.product.ProductRespVO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.order.OrderDO;
|
||||
import com.cf.imes.framework.common.pojo.PageResult;
|
||||
import com.cf.imes.module.executor.dal.dataobject.orderBody.OrderBodyDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.orderModuleExtra.OrderModuleExtraDO;
|
||||
import com.cf.imes.module.executor.util.deviseData.Detail;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -62,15 +58,6 @@ public interface OrderService {
|
||||
*/
|
||||
PageResult<OrderDO> getOrderPage(OrderPageReqVO pageReqVO);
|
||||
|
||||
/**
|
||||
* 批量导入生产单
|
||||
* list 数据转换之后
|
||||
* id 生产单id
|
||||
* orderImportRespVO 返回数据
|
||||
* @return OrderImportRespVO
|
||||
*/
|
||||
OrderImportRespVO importOrderList(List<Detail> list , Long id , OrderImportRespVO orderImportRespVO) throws IOException;
|
||||
|
||||
/**
|
||||
* 清除生产单表 order_{N}
|
||||
* 清除还没有清除生产单与工序相关、生产单与模块相关、生产单与包裹、余料、补板、相关
|
||||
@@ -86,17 +73,24 @@ public interface OrderService {
|
||||
|
||||
/**
|
||||
* @param orderId: 生产单Id
|
||||
* @return Map<Long, List<OrderBodyDO>>
|
||||
* @return List<OrderBodyRespVO>
|
||||
*/
|
||||
Map<Long, List<OrderBodyRespVO>> getOrderBody(Long orderId);
|
||||
List<OrderBodyRespVO> getOrderBody(Long orderId);
|
||||
|
||||
/**
|
||||
* @param orderId: 生产单Id
|
||||
* @return Map<Long, List<OrderModuleRespVO>>
|
||||
*/
|
||||
List<OrderModuleRespVO> getModule(Long orderId);
|
||||
|
||||
/**
|
||||
* @param orderId: 生产单id
|
||||
* @param roomId: 房间id
|
||||
* @param bodyId: 柜体id
|
||||
* @return List<ProductRespVO>
|
||||
* 需要修改返回值
|
||||
*/
|
||||
List<OrderModuleExtraDO> getModule(Long orderId, Long roomId , Long bodyId);
|
||||
List<OrderModuleExtraDO> getModuleDetail(Long orderId, Long roomId , Long bodyId);
|
||||
|
||||
/**
|
||||
* 删除柜体
|
||||
|
||||
+85
-192
@@ -9,11 +9,13 @@ import com.cf.imes.module.executor.controller.admin.order.vo.order.*;
|
||||
import com.cf.imes.framework.datapermission.core.util.DataPermissionUtils;
|
||||
import com.cf.imes.module.executor.controller.admin.order.vo.product.OrderBodyRespVO;
|
||||
import com.cf.imes.module.executor.controller.admin.order.vo.product.ProductRespVO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.goods.GoodsDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.orderBody.OrderBodyDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.orderGroup.OrderGroupDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.orderItem.OrderItemDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.orderModuleExtra.OrderModuleExtraDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.orderParts.OrderPartsDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.ordermodel.OrderModelDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.plate.PlateDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.rawgoods.RawGoodsDO;
|
||||
import com.cf.imes.module.executor.dal.mysql.orderBody.OrderBodyMapper;
|
||||
@@ -27,6 +29,7 @@ import com.cf.imes.module.executor.util.FileTypeChangeUtil;
|
||||
import com.cf.imes.module.executor.util.deviseData.Detail;
|
||||
import com.cf.imes.module.executor.util.deviseData.dataTwo.PlateDetail;
|
||||
import com.cf.imes.module.executor.util.fileConversion.admin.api.webcad.ApiTypeChangeRealize;
|
||||
import com.cf.imes.module.executor.util.fileConversion.admin.api.webcad.ApiTypeRealize;
|
||||
import com.cf.imes.module.system.api.application.ApplicationApi;
|
||||
import com.cf.imes.module.system.api.organ.OrganApi;
|
||||
import com.cf.imes.module.system.api.user.AdminUserApi;
|
||||
@@ -104,6 +107,12 @@ public class OrderServiceImpl implements OrderService {
|
||||
@Resource
|
||||
private ApiTypeChangeRealize apiTypeChangeRealize;
|
||||
|
||||
@Resource
|
||||
private ApiTypeRealize apiTypeRealize;
|
||||
|
||||
@Resource
|
||||
private OrderInputProcessor orderInputProcessor;
|
||||
|
||||
@Resource
|
||||
private ApplicationApi applicationApi;
|
||||
|
||||
@@ -165,160 +174,6 @@ public class OrderServiceImpl implements OrderService {
|
||||
return orderMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public OrderImportRespVO importOrderList(List<Detail> list , Long id , OrderImportRespVO orderImportRespVO) throws IOException {
|
||||
// 导入数据区分板材 配件
|
||||
HashMap<String, List<Detail>> map = classifyGoods(list);
|
||||
// 将相同条件的元素归为一个集合
|
||||
Map<List<Object>, List<Detail>> groupedMap = map.get("plate").stream()
|
||||
.collect(Collectors.groupingBy(
|
||||
p -> Arrays.asList(p.getIBoardProdInfo().getGoodsId(),
|
||||
p.getIBoardProdInfo().getGoodsName(),
|
||||
p.getIBoardProdInfo().getMaterial(),
|
||||
p.getIBoardProdInfo().getColor(),
|
||||
p.getIBoardProdInfo().getSpec(),
|
||||
p.getIBoardProdInfo().getThickness()),
|
||||
Collectors.toList()
|
||||
));
|
||||
groupedMap.forEach((key, value) -> {
|
||||
if(value.get(0).getIBoardProdInfo().getThickness() == null){
|
||||
// 获取板材厚度
|
||||
Pattern pattern = Pattern.compile("\\d+×\\d+×(\\d+)");
|
||||
Matcher matcher = pattern.matcher(value.get(0).getIBoardProdInfo().getSpec());
|
||||
if (matcher.matches()) {
|
||||
String number = matcher.group(1);
|
||||
number = number.trim();
|
||||
value.get(0).getIBoardProdInfo().setThickness(Double.valueOf(number));
|
||||
}
|
||||
}
|
||||
// 板材信息合集,添加生产单id,添加生产单板材设计端商品编码,板材信息写入order_raw_goods
|
||||
RawGoodsDO rawGoodsDO = BeanUtils.toBean(value.get(0).getIBoardProdInfo(), RawGoodsDO.class).setOrderId(id)
|
||||
.setRawGoodsId(value.get(0).getIBoardProdInfo().getGoodsId());
|
||||
rawGoodsMapper.insert(rawGoodsDO);
|
||||
Long rawGoodId = rawGoodsDO.getId();
|
||||
// 赋值给板件未对应前order_raw_goods的id
|
||||
for (Detail reqVO : value) {
|
||||
reqVO.getIBoardProdInfo().setRawGoodsId(rawGoodId);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
// 小板信息写入 、配件信息写入
|
||||
Map<String, List<Detail>> groupedRooms = list.stream()
|
||||
.collect(Collectors.groupingBy(
|
||||
order -> order.getIBoardProdInfo().getRoomsName() != null ? order.getIBoardProdInfo().getRoomsName() : " ",
|
||||
Collectors.toList()
|
||||
));
|
||||
// 根据房间分类
|
||||
groupedRooms.forEach((roomName, listRoom) -> {
|
||||
Long roomId = (Long) snowFlakeGenerator.nextId(null);
|
||||
Map<String, List<Detail>> groupedCabinetsName = listRoom.stream()
|
||||
.collect(Collectors.groupingBy(
|
||||
order -> order.getIBoardProdInfo().getCabinetsName() != null ? order.getIBoardProdInfo().getCabinetsName() : " ",
|
||||
Collectors.toList()
|
||||
));
|
||||
// 根据柜体名分类
|
||||
groupedCabinetsName.forEach((cabinetName, listCabinet) -> {
|
||||
final Double[] plateCountByCabinetName = {0.0};
|
||||
OrderBodyDO orderBodyDO = OrderBodyDO.builder().orderId(id).roomId(roomId)
|
||||
.roomName(roomName).name(cabinetName).build(); //没有获取柜体的长宽高
|
||||
orderBodyMapper.insert(orderBodyDO);
|
||||
Long bodyId = orderBodyDO.getId();
|
||||
|
||||
Map<String, List<Detail>> groupedSynthesis = listCabinet.stream()//根据组合类型
|
||||
.collect(Collectors.groupingBy(
|
||||
order -> Optional.ofNullable(order.getIBoardProdInfo().getSynthesis())
|
||||
.map(Object::toString)
|
||||
.orElse(" "),
|
||||
Collectors.toList()
|
||||
));
|
||||
|
||||
List<ProductRespVO> productRespVOS = new ArrayList<>();
|
||||
// 根据组合类别分类
|
||||
groupedSynthesis.forEach((synthesis, listSynthesis) -> {//根据组合类别
|
||||
|
||||
Map<String, List<Detail>> groupedCombinationName = listSynthesis.stream()
|
||||
.collect(Collectors.groupingBy(
|
||||
order -> order.getIBoardProdInfo().getCombinationName() != null ? order.getIBoardProdInfo().getCombinationName() : " ",
|
||||
Collectors.toList()
|
||||
));
|
||||
// 根据组合名称分类
|
||||
groupedCombinationName.forEach((combinationName, listCombinationName) -> {
|
||||
// 板数量
|
||||
final Double[] plateCountByCombination = {0.0};
|
||||
OrderGroupDO orderGroupDO = OrderGroupDO.builder().orderId(id).bodyId(bodyId)
|
||||
.groupTypeId(Long.valueOf(synthesis)).groupTypeName(listCombinationName.get(0).getIBoardProdInfo().getSynthesisTypeName()).name(combinationName).build();
|
||||
|
||||
orderGroupMapper.insert(orderGroupDO);
|
||||
Long groupId = orderGroupDO.getId();
|
||||
|
||||
listCombinationName.forEach(plateOrParts -> {
|
||||
|
||||
plateCountByCombination[0] = plateCountByCombination[0] + plateOrParts.getIBoardProdInfo().getGoodsNumber();
|
||||
if (plateOrParts.getIBoardProdInfo().getGoodType()== 1) {
|
||||
//板材
|
||||
for (int i = 0; i < plateOrParts.getIBoardProdInfo().getGoodsNumber(); i++) {
|
||||
PlateDO plateDO = BeanUtils.toBean(plateOrParts.getIBoardProdInfo(), PlateDO.class).setOrderId(id).setGoodsId(String.valueOf(plateOrParts.getIBoardProdInfo().getRawGoodsId()))
|
||||
.setThickness(BigDecimal.valueOf(plateOrParts.getIBoardProdInfo().getSplitThickness()));
|
||||
|
||||
plateMapper.insert(plateDO);
|
||||
productRespVOS.add(new ProductRespVO().setRoomId(roomId).setRoomName(roomName).setBodyId(bodyId).setBodyName(cabinetName)
|
||||
.setGroupId(groupId).setGroupTypeId(orderGroupDO.getGroupTypeId()).setGroupTypeName(orderGroupDO.getName())
|
||||
.setGoodType(1).setGoodName(plateDO.getName()).setUnits("片").setNum(1.0));
|
||||
Long plateId = plateDO.getId();
|
||||
orderImportRespVO.getCreateOrder().add(plateDO.getId() + "板材存入生成id");
|
||||
|
||||
OrderItemDO orderItemDO = OrderItemDO.builder().orderId(id).type(1)
|
||||
.roomId(roomId).bodyId(bodyId).plateId(plateId)
|
||||
.num(1.0).groupId(groupId).build();
|
||||
orderItemMapper.insert(orderItemDO);
|
||||
// 写入Detail中的IBoardProdInfo
|
||||
plateOrParts.getIBoardProdInfo().setPlateId(plateId);
|
||||
plateOrParts.getIBoardProdInfo().setPlateId(plateId);
|
||||
}
|
||||
}else {
|
||||
//配件
|
||||
OrderPartsDO orderPartsDO = BeanUtils.toBean(plateOrParts.getIBoardProdInfo(), OrderPartsDO.class).
|
||||
setName(plateOrParts.getIBoardProdInfo().getGoodsName()).setType(plateOrParts.getIBoardProdInfo().getGoodType()).setOrderId(id);
|
||||
orderPartsMapper.insert(orderPartsDO);
|
||||
orderImportRespVO.getCreateOrder().add(orderPartsDO.getId() + "配件存入生成id");
|
||||
OrderItemDO orderItemDO = OrderItemDO.builder().orderId(id).type(Integer.valueOf(plateOrParts.getIBoardProdInfo().getGoodType()))
|
||||
.roomId(roomId).bodyId(bodyId).partsId(orderPartsDO.getId()).groupId(groupId)
|
||||
.num(Double.valueOf(plateOrParts.getIBoardProdInfo().getGoodsNumber())).build();
|
||||
orderItemMapper.insert(orderItemDO);
|
||||
productRespVOS.add(new ProductRespVO().setRoomId(roomId).setRoomName(roomName).setBodyId(bodyId).setBodyName(cabinetName)
|
||||
.setGroupId(groupId).setGroupTypeId(orderGroupDO.getGroupTypeId()).setGroupTypeName(orderGroupDO.getName())
|
||||
.setGoodType(1).setGoodName(orderPartsDO.getName()).setUnits(orderPartsDO.getUnit()).setNum(orderItemDO.getNum()));
|
||||
}
|
||||
|
||||
});
|
||||
// 修改group中的板件数量
|
||||
orderGroupMapper.updatePlateNumById(groupId, plateCountByCombination[0]);
|
||||
plateCountByCabinetName[0] = plateCountByCabinetName[0] + plateCountByCombination[0];
|
||||
});
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
try {
|
||||
String detailListJson = objectMapper.writeValueAsString(productRespVOS);
|
||||
OrderModuleExtraDO orderModuleExtraDO = OrderModuleExtraDO.builder().orderId(id).roomId(roomId).id((Long) snowFlakeGenerator.nextId(null))
|
||||
.bodyId(bodyId).type(listCabinet.get(0).getIBoardProdInfo().getGoodType()).extraData(detailListJson).build();
|
||||
orderModuleExtraMapper.insert(orderModuleExtraDO);
|
||||
|
||||
} catch (JsonProcessingException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
});
|
||||
orderBodyMapper.updatePlateNumById(bodyId, plateCountByCabinetName[0]);
|
||||
});
|
||||
|
||||
|
||||
|
||||
});
|
||||
// fileTypeChangeUtil.fileDataChangeToJson(list, id);
|
||||
return orderImportRespVO;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void cleanOrder(Long orderId) {
|
||||
@@ -340,17 +195,21 @@ public class OrderServiceImpl implements OrderService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<Long, List<OrderBodyRespVO>> getOrderBody(Long orderId) {
|
||||
public List<OrderBodyRespVO> getOrderBody(Long orderId) {
|
||||
// 校验存在
|
||||
validateOrderExists(orderId);
|
||||
List<OrderBodyRespVO> orderBodyRespVOList = BeanUtils.toBean(orderBodyMapper.selectList(new LambdaQueryWrapper<OrderBodyDO>().eq(OrderBodyDO::getOrderId, orderId)), OrderBodyRespVO.class);
|
||||
Map<Long, List<OrderBodyRespVO>> groupedByRoomId = orderBodyRespVOList.stream()
|
||||
.collect(Collectors.groupingBy(OrderBodyRespVO::getRoomId));
|
||||
return groupedByRoomId;
|
||||
return orderBodyRespVOList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<OrderModuleExtraDO> getModule(Long orderId, Long roomId, Long bodyId) {
|
||||
public List<OrderModuleRespVO> getModule(Long orderId) {
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<OrderModuleExtraDO> getModuleDetail(Long orderId, Long roomId, Long bodyId) {
|
||||
List<OrderModuleExtraDO> orderModuleExtraDOS = orderModuleExtraMapper.selectExtraById(orderId, roomId, bodyId);
|
||||
return orderModuleExtraDOS;
|
||||
}
|
||||
@@ -386,20 +245,19 @@ public class OrderServiceImpl implements OrderService {
|
||||
String appSecret = app.getString("appSecret");
|
||||
|
||||
JSONObject json = apiOrderService.getApiTokenMessage(appId, appSecret);
|
||||
System.out.println("json " + json);
|
||||
if (!json.getString("err_msg").equals("success")) {
|
||||
throw exception(APP_TOKEN_ERROR);
|
||||
}
|
||||
String token = json.getJSONObject("info").getString("access_token");
|
||||
// 获取板件信息
|
||||
JSONObject jsonPlates = new JSONObject();
|
||||
jsonPlates.put("order_no", orderNo);//生产单号需要传入赋值
|
||||
jsonPlates.put("format", "json");
|
||||
JSONObject dataPlates = apiOrderService.getApiOrderMessage(token, jsonPlates);
|
||||
// 获取板件生产数据信息
|
||||
JSONObject jsonPlatesData = new JSONObject();
|
||||
jsonPlatesData.put("order_no", orderNo);//生产单号需要传入赋值
|
||||
jsonPlatesData.put("format", "json");
|
||||
JSONObject dataPlates = apiOrderService.getApiOrderMessage(token, jsonPlatesData);
|
||||
if (!dataPlates.getString("err_code").equals("0")) {
|
||||
throw exception(PLATE_DATA_ERROR);
|
||||
throw exception(PLATE_PLAN_DATA_ERROR);
|
||||
}
|
||||
// 获取配件信息
|
||||
// 获取配件信息 分页获取
|
||||
JSONObject jsonParts = new JSONObject();
|
||||
jsonParts.put("curr_page", 1);
|
||||
jsonParts.put("page_count", PARTS_PAGE_MAX);
|
||||
@@ -412,7 +270,7 @@ public class OrderServiceImpl implements OrderService {
|
||||
for (int i = 1; i <= parts.getJSONObject("value").getInteger("PageCount"); i++) {
|
||||
jsonParts.put("curr_page", i);
|
||||
JSONObject value = apiOrderService.getApiOrderPartsMessage(token, jsonParts).getJSONObject("value");
|
||||
mergeJSONObjects(dataParts, value);
|
||||
dataParts = mergeJSONObjects(dataParts, value);
|
||||
}
|
||||
// 柜体信息转换
|
||||
JSONObject jsonBody = new JSONObject();
|
||||
@@ -424,10 +282,10 @@ public class OrderServiceImpl implements OrderService {
|
||||
throw exception(BODY_DATA_ERROR);
|
||||
}
|
||||
JSONObject dataBody = new JSONObject();
|
||||
for (int i = 1; i <= dataBody.getJSONObject("value").getInteger("PageCount"); i++) {
|
||||
for (int i = 1; i <= body.getJSONObject("value").getInteger("PageCount"); i++) {
|
||||
jsonParts.put("curr_page", i);
|
||||
JSONObject value = apiOrderService.getApiOrderPartsMessage(token, jsonBody).getJSONObject("value");
|
||||
mergeJSONObjects(dataBody, value);
|
||||
JSONObject value = apiOrderService.getApiOrderBodyMessage(token, jsonBody).getJSONObject("value");
|
||||
dataBody = mergeJSONObjects(dataBody, value);
|
||||
}
|
||||
// 商品信息转换
|
||||
JSONObject jsonGoods = new JSONObject();
|
||||
@@ -435,45 +293,80 @@ public class OrderServiceImpl implements OrderService {
|
||||
jsonGoods.put("page_count", PARTS_PAGE_MAX);
|
||||
jsonGoods.put("order_no", orderNo);
|
||||
JSONObject goods = apiOrderService.getApiOrderGoodsMessage(token, jsonGoods);
|
||||
System.err.println("err_code " + goods.getString("err_code").equals("0"));
|
||||
if (!goods.getString("err_code").equals("0")) {
|
||||
throw exception(GOODS_DATA_ERROR);
|
||||
}
|
||||
JSONObject dataGoods = new JSONObject();
|
||||
for (int i = 1; i <= dataGoods.getJSONObject("value").getInteger("PageCount"); i++) {
|
||||
for (int i = 1; i <= goods.getJSONObject("value").getInteger("PageCount"); i++) {
|
||||
jsonParts.put("curr_page", i);
|
||||
JSONObject value = apiOrderService.getApiOrderGoodsMessage(token, jsonGoods).getJSONObject("value");
|
||||
mergeJSONObjects(dataGoods, value);
|
||||
dataGoods = mergeJSONObjects(dataGoods, value);
|
||||
}
|
||||
// 板材信息转换
|
||||
JSONObject jsonPlates = new JSONObject();
|
||||
jsonPlates.put("curr_page", 1);
|
||||
jsonPlates.put("page_count", PARTS_PAGE_MAX);
|
||||
jsonPlates.put("order_no", orderNo);
|
||||
JSONObject plates = apiOrderService.getApiBlocksDataMessage(token, jsonGoods);
|
||||
if (!plates.getString("err_code").equals("0")) {
|
||||
throw exception(PLATE_DATA_ERROR);
|
||||
}
|
||||
JSONObject plate = new JSONObject();
|
||||
for (int i = 1; i <= plates.getJSONObject("value").getInteger("PageCount"); i++) {
|
||||
jsonParts.put("curr_page", i);
|
||||
JSONObject value = apiOrderService.getApiBlocksDataMessage(token, jsonGoods).getJSONObject("value");
|
||||
plate = mergeJSONObjects(plate, value);
|
||||
}
|
||||
// 加工组信息转换
|
||||
JSONObject jsonModule = new JSONObject();
|
||||
jsonModule.put("order_no", orderNo);
|
||||
JSONObject dataModule = apiOrderService.getApiModuleTypeDataMessage(token, jsonGoods);
|
||||
// 转换
|
||||
List<PlateDetail> plateDetails = (List<PlateDetail>) apiTypeChangeRealize.apiPlateDataChange(dataPlates.getJSONObject("value"),dataParts,dataBody,dataGoods);
|
||||
// order_raw_goods List<BoardInfo>
|
||||
// List<RawGoodsDO> boardInfos = BeanUtils.toBean(apiTypeChangeRealize.goodsInfoChange(dataGoods), RawGoodsDO.class);
|
||||
// System.out.println(" jsonPlatesData " + dataPlates.getJSONObject("value")+ "\n"
|
||||
// + " dataParts " + dataParts+ "\n"
|
||||
// + " dataBody " + dataBody+ "\n"
|
||||
// + " dataGoods " + dataGoods+ "\n"
|
||||
// + " plate " + plate+ "\n"
|
||||
// + " dataModule " + dataModule);
|
||||
Map<String, List<?>> listMap = apiTypeRealize.apiPlateDataChange(
|
||||
dataPlates.getJSONObject("value"),//板件生产信息
|
||||
dataParts,// 配件信息
|
||||
dataBody, // 柜体信息
|
||||
dataGoods, // 商品信息
|
||||
plate, // 板件信息
|
||||
dataModule); // 加工组信息
|
||||
List<OrderDO> order = (List<OrderDO>) listMap.get("orderDO");
|
||||
List<GoodsDO> goodsDO = (List<GoodsDO>) listMap.get("goodsDO");
|
||||
List<RawGoodsDO> rawGoodsDO = (List<RawGoodsDO>) listMap.get("rawGoodsDO");
|
||||
List<OrderBodyDO> bodyDO = (List<OrderBodyDO>) listMap.get("bodyDO");
|
||||
List<OrderGroupDO> groupDO = (List<OrderGroupDO>) listMap.get("groupDO");
|
||||
List<OrderPartsDO> partsDO = (List<OrderPartsDO>) listMap.get("partsDO");
|
||||
List<PlateDO> plateDO = (List<PlateDO>) listMap.get("platesDO");
|
||||
List<PlateDetail> plateDetail = (List<PlateDetail>) listMap.get("plateDetail");
|
||||
List<OrderItemDO> itemDO = (List<OrderItemDO>) listMap.get("itemDO");
|
||||
|
||||
System.out.println(plateDetails);
|
||||
orderInputProcessor.batchInsert(rawGoodsDO, bodyDO, groupDO, partsDO, plateDO, null, itemDO, order.get(0));
|
||||
System.out.println(BeanUtils.toBean(plateDetail, OrderModelDO.class));
|
||||
orderInputProcessor.batchSaveModel(BeanUtils.toBean(plateDetail, OrderModelDO.class));
|
||||
return null;
|
||||
}
|
||||
|
||||
// 合并两个 JSON 对象的方法
|
||||
public JSONObject mergeJSONObjects(JSONObject object1, JSONObject object2) {
|
||||
JSONObject mergedObject = new JSONObject();
|
||||
|
||||
// 获取第一个 JSON 对象中 "name" 的值
|
||||
Object value1 = object1.get("List");
|
||||
|
||||
// 获取第二个 JSON 对象中 "name" 的值
|
||||
Object value2 = object2.get("List");
|
||||
|
||||
// 创建一个 JSON 数组,将两个值添加进去
|
||||
JSONArray array = new JSONArray();
|
||||
array.add(value1);
|
||||
array.add(value2);
|
||||
|
||||
// 将数组作为值设置到合并后的 JSON 对象中
|
||||
mergedObject.put("List", array);
|
||||
|
||||
return mergedObject;
|
||||
if (object1.getJSONArray("List") == null) {
|
||||
object1.put("value", object2);
|
||||
} else {
|
||||
if (value2 != null)
|
||||
object1.getJSONArray("List").add(value2);
|
||||
}
|
||||
return object1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void validateOrderBodyExists(Long orderId, Long bodyId) {
|
||||
if (orderBodyMapper.selectCount(new LambdaQueryWrapper<OrderBodyDO>().eq(OrderBodyDO::getOrderId, orderId).eq(OrderBodyDO::getId, bodyId)) == 0) {
|
||||
throw exception(ORDER_BODY_NOT_EXISTS);
|
||||
|
||||
+6
-4
@@ -5,6 +5,8 @@ import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 板件基本信息
|
||||
*/
|
||||
@@ -28,10 +30,10 @@ public class BoardInfo {
|
||||
private String unit; //商品单位
|
||||
|
||||
private String spec; //商品规格
|
||||
private Double height;
|
||||
private Double width;
|
||||
private Double length;
|
||||
private Double thickness;//规格-板厚 板厚,成品和开料都是一样的
|
||||
private BigDecimal height;
|
||||
private BigDecimal width;
|
||||
private BigDecimal length;
|
||||
private BigDecimal thickness;//规格-板厚 板厚,成品和开料都是一样的
|
||||
private Boolean isTexture; // 有无纹路
|
||||
|
||||
private Double price;
|
||||
|
||||
+1
-1
@@ -21,7 +21,7 @@ public class PartsInfo {
|
||||
// 配件所属信息
|
||||
private String roomName; //房间名称
|
||||
private String bodyName; //柜体名
|
||||
private String bodyNo; // 柜体编号
|
||||
private Integer bodyNo; // 柜体编号
|
||||
|
||||
|
||||
// 柜体成倍拆单的倍数
|
||||
|
||||
+17
-13
@@ -1,10 +1,12 @@
|
||||
package com.cf.imes.module.executor.util.deviseData.dataTwo;
|
||||
|
||||
import com.cf.imes.framework.es.core.dal.ESDocument;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -15,9 +17,11 @@ import java.util.Map;
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class PlateDetail {
|
||||
public class PlateDetail{
|
||||
// 板名称
|
||||
private String name;
|
||||
// 板id
|
||||
private Long id;
|
||||
// 板编号
|
||||
private String plateNo;
|
||||
// 自定义板号
|
||||
@@ -49,27 +53,27 @@ public class PlateDetail {
|
||||
private List<Group> groupList;
|
||||
|
||||
// 成品长宽、面积
|
||||
private Double plateWidth;
|
||||
private Double plateLength;
|
||||
private Double acreage;
|
||||
private BigDecimal plateWidth;
|
||||
private BigDecimal plateLength;
|
||||
private BigDecimal acreage;
|
||||
|
||||
// 开料长宽、面积
|
||||
private Double splitLength;
|
||||
private Double splitWidth;
|
||||
private Double sealAcreage;
|
||||
private BigDecimal splitLength;
|
||||
private BigDecimal splitWidth;
|
||||
private BigDecimal sealAcreage;
|
||||
|
||||
// 是否异形
|
||||
private Boolean isUnRegular;
|
||||
// 封边,用于矩形
|
||||
private Double sealLeft;
|
||||
private Double sealRight;
|
||||
private Double sealUp;
|
||||
private Double sealDown;
|
||||
private BigDecimal sealLeft;
|
||||
private BigDecimal sealRight;
|
||||
private BigDecimal sealUp;
|
||||
private BigDecimal sealDown;
|
||||
|
||||
|
||||
// 偏移量
|
||||
private Double offsetX;
|
||||
private Double offsetY;
|
||||
private BigDecimal offsetX;
|
||||
private BigDecimal offsetY;
|
||||
|
||||
// 大板基本信息
|
||||
private BoardInfo boardInfo;
|
||||
|
||||
+271
-57
@@ -7,18 +7,12 @@ import com.cf.imes.module.executor.dal.dataobject.goods.GoodsDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.order.OrderDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.orderBody.OrderBodyDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.orderGroup.OrderGroupDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.orderItem.OrderItemDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.orderModuleExtra.OrderModuleExtraDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.orderParts.OrderPartsDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.ordermodel.OrderModelDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.plate.PlateDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.rawgoods.RawGoodsDO;
|
||||
import com.cf.imes.module.executor.util.deviseData.dataTwo.*;
|
||||
import com.cf.imes.module.system.api.dict.DictDataApi;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
@@ -44,14 +38,19 @@ public class ApiTypeChangeRealize {
|
||||
@Resource
|
||||
private DictDataApi dictDataApi;
|
||||
|
||||
public Map<Long, List<?>> apiPlateDataChange(JSONObject dataPlates, JSONObject dataParts, JSONObject dataBody, JSONObject dataGoods) {
|
||||
public Map<Long, List<?>> apiPlateDataChange(JSONObject dataPlates, JSONObject dataParts
|
||||
, JSONObject dataBody, JSONObject dataGoods
|
||||
, JSONObject plates, JSONObject dataModule) {
|
||||
|
||||
// 上产单id
|
||||
Long orderId = (Long) identifierGenerator.nextId(null);
|
||||
Map<Long, List<?>> map = new HashMap<>();
|
||||
return map;
|
||||
}
|
||||
|
||||
// 板材数据转换
|
||||
public List<PlateDetail> platesInfoChange(JSONObject dataPlates) {
|
||||
// raw商品数据获取
|
||||
Map<String, Map<Integer, ?>> rawGoodsMap = rawGoodsInfoChange(dataGoods, orderId); //数据完整
|
||||
// 获取柜体数据转换
|
||||
Map<Integer, OrderBodyDO> orderBodyDOMap = bodyInfoChange(dataBody, orderId); // 缺少数量
|
||||
// 板材数据转换
|
||||
List<PlateDetail> plateDetails = new ArrayList<>();
|
||||
// 获取 Orders 字段对应的数组
|
||||
JSONArray ordersArray = dataPlates.getJSONArray("Orders");
|
||||
@@ -64,7 +63,7 @@ public class ApiTypeChangeRealize {
|
||||
|
||||
JSONObject order = ordersArray.getJSONObject(i);
|
||||
// 生产单信息
|
||||
Long orderId = (Long) identifierGenerator.nextId(null);
|
||||
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||
LocalDate orderDate = LocalDate.parse(order.getString("SaleDate"), formatter);
|
||||
LocalDate deliveryDate = LocalDate.parse(order.getString("DeliveryDate"), formatter);
|
||||
@@ -115,7 +114,7 @@ public class ApiTypeChangeRealize {
|
||||
.getData().getValue());
|
||||
PlateDO orderPartsDO = PlateDO.builder()
|
||||
.id(plateId)
|
||||
.goodsId(String.valueOf(goodsId))
|
||||
.goodsId(Long.valueOf(goodsId))
|
||||
.orderId(orderId)
|
||||
.name(block.getString("BlockName"))
|
||||
.plateNo(block.getString("CustomNo"))
|
||||
@@ -144,8 +143,8 @@ public class ApiTypeChangeRealize {
|
||||
|
||||
.isDoor(block.getInteger("OpenDoorType") == 0 ? false : true)
|
||||
.openDoorType(block.getInteger("OpenDoorType"))
|
||||
.offsetX(block.getDouble("OffsetX"))
|
||||
.offsetY(block.getDouble("OffsetY"))
|
||||
.offsetX(block.getBigDecimal("OffsetX"))
|
||||
.offsetY(block.getBigDecimal("OffsetY"))
|
||||
|
||||
.isArcAcross(false)
|
||||
.moduleTypeId(0L)
|
||||
@@ -168,22 +167,22 @@ public class ApiTypeChangeRealize {
|
||||
.group(block.getString("ProcessGroupName"))
|
||||
.multiNum(1)
|
||||
// .groupList(getProcessGroup(block))
|
||||
.plateWidth(Double.valueOf(block.getString("Width")))
|
||||
.plateLength(Double.valueOf(block.getString("Length")))
|
||||
.acreage(Double.valueOf(block.getString("Size")))
|
||||
.splitWidth(Double.valueOf(block.getString("CuttingWidth")))
|
||||
.splitLength(Double.valueOf(block.getString("CuttingLength")))
|
||||
.sealAcreage(Double.valueOf(block.getString("CuttingSize")))
|
||||
.isUnRegular(Boolean.valueOf(block.getString("IsUnRegular")))
|
||||
.sealLeft(Double.valueOf(block.getString("BorderLeft")))
|
||||
.sealRight(Double.valueOf(block.getString("BorderRight")))
|
||||
.sealUp(Double.valueOf(block.getString("BorderUpper")))
|
||||
.sealDown(Double.valueOf(block.getString("BorderUnder")))
|
||||
.texture(Integer.valueOf(block.getString("Wave")))
|
||||
.plateWidth(block.getBigDecimal("Width"))
|
||||
.plateLength(block.getBigDecimal("Length"))
|
||||
.acreage(block.getBigDecimal("Size"))
|
||||
.splitWidth(block.getBigDecimal("CuttingWidth"))
|
||||
.splitLength(block.getBigDecimal("CuttingLength"))
|
||||
.sealAcreage(block.getBigDecimal("CuttingSize"))
|
||||
.isUnRegular(block.getBoolean("IsUnRegular"))
|
||||
.sealLeft(block.getBigDecimal("BorderLeft"))
|
||||
.sealRight(block.getBigDecimal("BorderRight"))
|
||||
.sealUp(block.getBigDecimal("BorderUpper"))
|
||||
.sealDown(block.getBigDecimal("BorderUnder"))
|
||||
.texture(block.getInteger("Wave"))
|
||||
.typographicFace(Integer.valueOf(block.getString("PlaceFace")))
|
||||
.openDoorType(Integer.valueOf(block.getString("OpenDoorType")))
|
||||
.offsetX(Double.valueOf(block.getString("OffsetX")))
|
||||
.offsetY(Double.valueOf(block.getString("OffsetY")))
|
||||
.offsetX(block.getBigDecimal("OffsetX"))
|
||||
.offsetY(block.getBigDecimal("OffsetY"))
|
||||
.pointDetail(getPointDetail(block, 1))
|
||||
.rawPointDetail(getPointDetail(block, 3))
|
||||
.holeDetail(getHoleDetail(block, 1))
|
||||
@@ -215,60 +214,275 @@ public class ApiTypeChangeRealize {
|
||||
System.out.println("JSON 数据中没有订单信息(Orders 数组为空)。");
|
||||
}
|
||||
|
||||
return plateDetails;
|
||||
|
||||
return map;
|
||||
}
|
||||
|
||||
// 柜体信息转换
|
||||
private List<OrderBodyDO> bodyInfoChange(JSONObject dataBody) {
|
||||
List<OrderBodyDO> bodyInfos = new ArrayList<>();
|
||||
/**
|
||||
* 生产单信息转换
|
||||
*
|
||||
* @param dataPlates:
|
||||
* @return OrderDO
|
||||
* @author Administrator
|
||||
* @date 2024/4/30
|
||||
*/
|
||||
public OrderDO orderInfoChange(JSONObject dataPlates, Long orderId) {
|
||||
List<PlateDetail> plateDetails = new ArrayList<>();
|
||||
// 获取 Orders 字段对应的数组
|
||||
JSONObject order = dataPlates.getJSONObject("Orders");
|
||||
|
||||
// 如果 Orders 数组不为空,则获取第一个订单对象
|
||||
if (order != null && !order.isEmpty()) {
|
||||
// 获取生产单信息
|
||||
// 使用 DateTimeFormatter 解析日期字符串
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||
LocalDate orderDate = LocalDate.parse(order.getString("SaleDate"), formatter);
|
||||
LocalDate deliveryDate = LocalDate.parse(order.getString("DeliveryDate"), formatter);
|
||||
|
||||
OrderDO orderDO = OrderDO.builder()
|
||||
.id(orderId)
|
||||
.parentNo(0L)
|
||||
.orderDate(orderDate.atStartOfDay())
|
||||
.deliveryDate(deliveryDate.atStartOfDay())
|
||||
.orderType(1)
|
||||
.orderSort(0)
|
||||
.dataType(2)
|
||||
.status(0)
|
||||
.customOrderNo(order.getString("CustomOrderNo"))
|
||||
.customer(order.getString("Consigee"))
|
||||
.address(order.getString("ConsigeeAddress"))
|
||||
.phoneNumber(order.getString("ConsigeePhone"))
|
||||
.dealer(order.getString("CustomName"))
|
||||
.dealerPhoneNumber("无")
|
||||
.salesman(order.getString("SalePerson"))
|
||||
.splitter("无")
|
||||
.remark(order.getString("Remark"))
|
||||
.build();
|
||||
return orderDO;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* raw商品信息转换 和 商品信息转换
|
||||
*
|
||||
* @param dataRawGoods:
|
||||
* @param orderId:
|
||||
* @return Map<String, Map < Integer, ?>> String 标识 , Integer:商品ID标识,RawGoodsDO:商品信息
|
||||
* @author Administrator
|
||||
* @date 2024/4/30
|
||||
*/
|
||||
public Map<String, Map<Integer, ?>> rawGoodsInfoChange(JSONObject dataRawGoods, Long orderId) {
|
||||
Map<String, Map<Integer, ?>> map = new HashMap<>();
|
||||
Map<Integer, RawGoodsDO> rawGoodsDOS = new HashMap<>();
|
||||
Map<Integer, GoodsDO> goodsDOS = new HashMap<>();
|
||||
|
||||
dataRawGoods.getJSONArray("List").forEach(item -> {
|
||||
JSONObject parts = (JSONObject) item;
|
||||
RawGoodsDO rawGoodsDO = RawGoodsDO.builder()
|
||||
.id((Long) identifierGenerator.nextId(null))
|
||||
.orderId(orderId)
|
||||
.rawGoodsId(String.valueOf(parts.getLong("GoodsID")))
|
||||
.goodsName(parts.getString("GoodsName"))
|
||||
.material(parts.getString("Material"))
|
||||
.color(parts.getString("Color"))
|
||||
.thickness(parts.getDouble("Thickness"))
|
||||
.price(parts.getDouble("Price"))
|
||||
.brand(parts.getString("Brand"))
|
||||
.spec(parts.getString("Spec"))
|
||||
.build();
|
||||
rawGoodsDOS.put(parts.getInteger("GoodsID"), rawGoodsDO);
|
||||
|
||||
GoodsDO goodsDO = GoodsDO.builder()
|
||||
.id((Long) identifierGenerator.nextId(null))
|
||||
.orderId(orderId)
|
||||
.rawGoodsId(rawGoodsDO.getId())
|
||||
.goodsId(parts.getLong("GoodsID"))
|
||||
.goodsName(parts.getString("GoodsName"))
|
||||
.material(parts.getString("Material"))
|
||||
.color(parts.getString("Color"))
|
||||
.width(BigDecimal.valueOf(parts.getDouble("Width")))
|
||||
.height(BigDecimal.valueOf(parts.getDouble("Height")))
|
||||
.thickness(BigDecimal.valueOf(parts.getDouble("Thickness")))
|
||||
.price(BigDecimal.valueOf(parts.getDouble("Price")))
|
||||
.brand(parts.getString("Brand"))
|
||||
.spec(parts.getString("Spec"))
|
||||
.build();
|
||||
goodsDOS.put(parts.getInteger("GoodsID"), goodsDO);
|
||||
});
|
||||
map.put("rawGoodsDOS", rawGoodsDOS);
|
||||
map.put("goodsDOS", goodsDOS);
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* 柜体信息转换
|
||||
*
|
||||
* @param dataBody:
|
||||
* @return Map<Integer, OrderBodyDO> Integer:柜体ID标识,OrderBodyDO:柜体信息(差数据)
|
||||
* @author Administrator
|
||||
* @date 2024/4/30
|
||||
*/
|
||||
private Map<Integer, OrderBodyDO> bodyInfoChange(JSONObject dataBody, Long orderId) {
|
||||
Map<Integer, OrderBodyDO> bodyInfos = new HashMap<>();
|
||||
|
||||
dataBody.getJSONArray("List").forEach(item -> {
|
||||
JSONObject body = (JSONObject) item;
|
||||
OrderBodyDO bodyInfo = OrderBodyDO.builder()
|
||||
.id(Long.valueOf(body.getString("BoxID")))// 差一个BoxID,没有对应的
|
||||
.orderId(orderId)
|
||||
.roomId(Long.valueOf(body.getString("RoomID")))
|
||||
.roomName(body.getString("Room"))
|
||||
.name(body.getString("Name"))
|
||||
|
||||
.width(body.getDouble("Width"))
|
||||
.height(body.getDouble("Height"))
|
||||
.depth(body.getDouble("Depth"))
|
||||
.multiNum(0)
|
||||
.plateNum(0)
|
||||
.unregularNum(0)
|
||||
.filename("无")
|
||||
.remark("无")
|
||||
.build();
|
||||
bodyInfos.add(bodyInfo);
|
||||
bodyInfos.put(body.getInteger("BoxID"), bodyInfo);
|
||||
|
||||
|
||||
});
|
||||
return bodyInfos;
|
||||
}
|
||||
|
||||
// 加工组信息筛选
|
||||
private List<OrderGroupDO> getProcessGroup(JSONObject block) {
|
||||
List<OrderGroupDO> groupList = new ArrayList<>();
|
||||
if (block.getJSONObject("ExtraRemark") != null && !block.getJSONObject("ExtraRemark").isEmpty()) {
|
||||
JSONObject extraRemark = block.getJSONObject("ExtraRemark");
|
||||
if (extraRemark.getJSONObject("extra") != null && !extraRemark.getJSONObject("extra").isEmpty()) {
|
||||
JSONObject extra = extraRemark.getJSONObject("extra");
|
||||
if (extra.getJSONArray("processList") != null && !extra.getJSONArray("processList").isEmpty()) {
|
||||
for (int i = 0; i < extra.getJSONArray("processList").size(); i++) {
|
||||
JSONObject process = extra.getJSONArray("processList").getJSONObject(i);
|
||||
OrderGroupDO group = OrderGroupDO.builder()
|
||||
// .id
|
||||
.name(process.getString("name"))
|
||||
.width(Double.valueOf(process.getJSONObject("size").getString("width")))
|
||||
.height(Double.valueOf(process.getJSONObject("size").getString("height")))
|
||||
.depth(Double.valueOf(process.getJSONObject("size").getString("depth")))
|
||||
.build();
|
||||
/**
|
||||
* 加工组信息转换
|
||||
*
|
||||
* @param dataGroup: JSON 数据
|
||||
* @param orderId:
|
||||
* @param body: 柜体信息
|
||||
* @return Map<Integer, List < Map < OrderGroupDO, List < Integer>>>> Integer 柜体id , List<Map<OrderGroupDO,List<Integer>>> 相同柜体的加工组信息
|
||||
* OrderGroupDO:加工组信息 , List<Integer>:加工组中包含的板材配件信息
|
||||
* (差数据)
|
||||
* @author Administrator
|
||||
* @date 2024/4/30
|
||||
*/
|
||||
private Map<Long, List<Map<OrderGroupDO, List<Integer>>>> groupInfoChange(JSONObject dataGroup, Long orderId
|
||||
, Map<Integer, OrderBodyDO> body) {
|
||||
|
||||
groupList.add(group);
|
||||
}
|
||||
Map<Long, List<Map<OrderGroupDO, List<Integer>>>> groupInfosAndBodyId = new HashMap<>();
|
||||
List<Map<OrderGroupDO, List<Integer>>> groupInfosAndItemList = new ArrayList<>();
|
||||
Map<OrderGroupDO, List<Integer>> groupInfos = new HashMap<>();
|
||||
|
||||
}
|
||||
dataGroup.getJSONArray("value").forEach(value -> {
|
||||
JSONObject group = (JSONObject) value;
|
||||
OrderGroupDO bodyInfo = OrderGroupDO.builder()
|
||||
.id((Long) identifierGenerator.nextId(null))// 自动生成
|
||||
.orderId(orderId)
|
||||
.bodyId(0L)
|
||||
.groupTypeId(Long.valueOf(group.getInteger("ModuleTypeID")))
|
||||
.groupTypeName("无")
|
||||
.name(group.getString("ModuleTypeName"))
|
||||
.width(group.getDouble("Width"))
|
||||
.height(group.getDouble("Length"))
|
||||
.depth(group.getDouble("Thickness"))
|
||||
.multiNum(0)
|
||||
.plateNum(0)
|
||||
.unregularNum(0)
|
||||
.filename("无")
|
||||
.remark("无")
|
||||
.build();
|
||||
|
||||
if (body.get(group.getInteger("BoxID")) != null) {
|
||||
bodyInfo.setBodyId(body.get(group.getInteger("BoxID")).getId());
|
||||
} else {
|
||||
bodyInfo.setBodyId(-0L);
|
||||
}
|
||||
groupInfos.put(bodyInfo, jsonArrayToList(group.getJSONArray("ItemIDList")));
|
||||
});
|
||||
// 遍历groupInfos,以OrderGroupDO中的bodyId为key,将groupInfosAndItemList中的value添加到groupInfosAndBodyId中
|
||||
// 遍历 groupInfos
|
||||
groupInfos.forEach((groupInfo, itemList) -> {
|
||||
// 获取当前分组信息的 bodyId
|
||||
Long bodyId = groupInfo.getBodyId();
|
||||
|
||||
}
|
||||
return groupList;
|
||||
// 如果 groupInfosAndBodyId 中已经存在该 bodyId,则获取对应的项目列表,否则创建一个新的列表
|
||||
List<Map<OrderGroupDO, List<Integer>>> existingItemList = groupInfosAndBodyId.getOrDefault(bodyId, new ArrayList<>());
|
||||
|
||||
// 创建包含当前分组信息及项目列表的 Map
|
||||
Map<OrderGroupDO, List<Integer>> infoAndItemList = new HashMap<>();
|
||||
infoAndItemList.put(groupInfo, itemList);
|
||||
|
||||
// 将当前的分组信息及项目列表添加到列表中
|
||||
existingItemList.add(infoAndItemList);
|
||||
|
||||
// 更新 groupInfosAndBodyId 中的映射关系
|
||||
groupInfosAndBodyId.put(bodyId, existingItemList);// 有问题
|
||||
});
|
||||
return groupInfosAndBodyId;
|
||||
}
|
||||
|
||||
/**
|
||||
* JSONArray转List<Integer>
|
||||
*/
|
||||
public List<Integer> jsonArrayToList(JSONArray jsonArray) {
|
||||
List<Integer> list = new ArrayList<>();
|
||||
for (int i = 0; i < jsonArray.size(); i++) {
|
||||
list.add(jsonArray.getInteger(i));
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
/**
|
||||
* 配件信息转存
|
||||
*
|
||||
* @param value: JSON数据
|
||||
* @param orderId:
|
||||
* @param group: 加工组信息
|
||||
* @return List<PartsInfo>
|
||||
* @author Administrator
|
||||
* @date 2024/4/30
|
||||
*/
|
||||
public List<PartsInfo> partsInfoChange(JSONObject value, Long orderId, Map<OrderGroupDO, List<Integer>> group) {
|
||||
List<PartsInfo> partsInfos = new ArrayList<>();
|
||||
|
||||
if (value != null && !value.isEmpty()) {
|
||||
JSONArray partsLists = value.getJSONArray("List");
|
||||
for (int i = 0; i < partsLists.size(); i++) {
|
||||
JSONObject parts = partsLists.getJSONObject(i);
|
||||
PartsInfo partsInfo = PartsInfo.builder()
|
||||
.id(parts.getString("DataID"))
|
||||
.name(parts.getString("Name"))
|
||||
.roomName(parts.getString("RoomName"))
|
||||
.bodyName(parts.getString("BoxName"))
|
||||
.bodyNo(parts.getInteger("BoxID"))
|
||||
.multiNum(Integer.valueOf(parts.getString("MultiNum")))
|
||||
.goodsNo(parts.getString("GoodsNo"))
|
||||
.goodId(Long.valueOf(parts.getString("GoodsID")))
|
||||
.material(parts.getString("material"))
|
||||
.color(parts.getString("color"))
|
||||
.factory(parts.getString("Factory"))
|
||||
.brand(parts.getString("Brand"))
|
||||
.model(parts.getString("Model"))
|
||||
.unit(parts.getString("Units"))
|
||||
.price(parts.getDouble("Price"))
|
||||
.isComposite(Boolean.valueOf(parts.getString("IsComposite")))
|
||||
.groupName(parts.getString("GroupName"))
|
||||
.objectType(parts.getString("ObjectType"))
|
||||
.objectSpecExtras(parts.getString("SpecExtras"))
|
||||
.goodsNumber(Double.valueOf(parts.getString("GoodsNumber")))
|
||||
.doorRemark(parts.getString("DoorRemark"))
|
||||
.hingeRemark(parts.getString("HingeRemark"))
|
||||
.specialRemark(parts.getString("SpecialRemark"))
|
||||
.remark(parts.getString("Remark"))
|
||||
.processGroup(parts.getString("ProcessGroup"))
|
||||
.build();
|
||||
partsInfos.add(partsInfo);
|
||||
}
|
||||
}
|
||||
// 配件信息转换成 柜体id,配件信息
|
||||
Map<Integer, List<PartsInfo>> partsInfoMap = partsInfos.stream().collect(Collectors.groupingBy(PartsInfo::getBodyNo));
|
||||
System.out.println(" partsInfos " + partsInfos);
|
||||
return partsInfos;
|
||||
}
|
||||
|
||||
|
||||
// 异形板的开料轮廓 (type 为1,不含封边;其他为,含封边)
|
||||
private List<PointDetail> getPointDetail(JSONObject block, Integer type) {
|
||||
List<PointDetail> pointDetailList = new ArrayList<>();
|
||||
|
||||
+780
@@ -0,0 +1,780 @@
|
||||
package com.cf.imes.module.executor.util.fileConversion.admin.api.webcad;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.incrementer.IdentifierGenerator;
|
||||
import com.cf.imes.module.executor.dal.dataobject.goods.GoodsDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.order.OrderDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.orderBody.OrderBodyDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.orderGroup.OrderGroupDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.orderItem.OrderItemDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.orderParts.OrderPartsDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.plate.PlateDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.rawgoods.RawGoodsDO;
|
||||
import com.cf.imes.module.executor.util.deviseData.dataTwo.*;
|
||||
import com.cf.imes.module.system.api.dict.DictDataApi;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
import java.util.function.BiConsumer;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 实现数据格式转换
|
||||
* 使用自带id
|
||||
*/
|
||||
@Slf4j
|
||||
@Component
|
||||
public class ApiTypeRealize {
|
||||
|
||||
@Resource
|
||||
private IdentifierGenerator identifierGenerator;
|
||||
|
||||
@Resource
|
||||
private DictDataApi dictDataApi;
|
||||
|
||||
/**
|
||||
* @param dataPlates: 板件生产信息
|
||||
* @param dataParts: 配件信息
|
||||
* @param dataBody: 柜体信息
|
||||
* @param dataGoods: 商品信息
|
||||
* @param plates: 板件信息
|
||||
* @param dataModule: 加工组信息
|
||||
* @return Map<Long, List < ?>>
|
||||
* @author Administrator
|
||||
* @date 2024/5/6
|
||||
*/
|
||||
public Map<String, List<?>> apiPlateDataChange(JSONObject dataPlates, JSONObject dataParts
|
||||
, JSONObject dataBody, JSONObject dataGoods
|
||||
, JSONObject plates, JSONObject dataModule) {
|
||||
|
||||
Map<String, List<?>> map = new HashMap<>();
|
||||
|
||||
// 生产单id
|
||||
Long orderId = (Long) identifierGenerator.nextId(null);
|
||||
|
||||
// 生产单数据
|
||||
OrderDO orderDO = orderInfoChange(dataPlates, orderId);
|
||||
List<OrderDO> order = new ArrayList<>();
|
||||
order.add(orderDO);
|
||||
// 商品信息数据 信息以全
|
||||
Map<String, Map<Integer, ?>> goodsInfoChange = rawGoodsInfoChange(dataGoods, orderId);
|
||||
// System.out.println(" goodsInfoChange " + goodsInfoChange);
|
||||
List<GoodsDO> goodsDO = (List<GoodsDO>) goodsInfoChange.get("goodsDOS").values().stream()
|
||||
.collect(Collectors.toList());
|
||||
map.put("goodsDO", goodsDO);
|
||||
List<RawGoodsDO> rawGoodsDO = (List<RawGoodsDO>) goodsInfoChange.get("rawGoodsDOS").values().stream()
|
||||
.collect(Collectors.toList());
|
||||
map.put("rawGoodsDO", rawGoodsDO);
|
||||
// 柜体信息 少异形数量、板材数量
|
||||
Map<Integer, OrderBodyDO> bodyInfoChange = bodyInfoChange(dataBody, orderId);
|
||||
// System.out.println(" bodyInfoChange " + bodyInfoChange);
|
||||
// 加工组 少异形数量、板材数量
|
||||
Map<String, Map<Integer, ?>> group = groupInfoChange(dataModule, orderId, bodyInfoChange);
|
||||
Map<Integer, OrderGroupDO> orderGroupDO = (Map<Integer, OrderGroupDO>) group.get("orderGroup");
|
||||
map.put("groupDO", orderGroupDO.values().stream().collect(Collectors.toList()));
|
||||
Map<Integer, List<Integer>> groupLists = (Map<Integer, List<Integer>>) group.get("lists");
|
||||
// 配件
|
||||
Map<String, Map<Integer, ?>> partsDO = partsInfoChange(dataParts, orderId,
|
||||
(Map<Integer, GoodsDO>) goodsInfoChange.get("goodsDOS"), bodyInfoChange);
|
||||
Map<Integer, OrderPartsDO> orderPartsDO = (Map<Integer, OrderPartsDO>) partsDO.get("partsInfos");
|
||||
map.put("partsDO", orderPartsDO.values().stream().collect(Collectors.toList()));
|
||||
Map<Integer, OrderItemDO> partsItems = (Map<Integer, OrderItemDO>) partsDO.get("partsItems");
|
||||
|
||||
List<OrderItemDO> itemsList = new ArrayList<>();
|
||||
partsItems = orderPartsChange(bodyInfoChange, orderGroupDO, groupLists, partsItems);// item补充
|
||||
itemsList.addAll(partsItems.values());
|
||||
// 板材 写库
|
||||
Map<String, Map<Integer, ?>> platesDO = platesInfoChange(dataPlates, plates, orderId,
|
||||
(Map<Integer, GoodsDO>) goodsInfoChange.get("goodsDOS"), bodyInfoChange);
|
||||
Map<Integer, PlateDO> orderPlatesDO = (Map<Integer, PlateDO>) platesDO.get("platesInfos");
|
||||
map.put("platesDO", orderPlatesDO.values().stream().collect(Collectors.toList()));
|
||||
map.put("plateDetail", platesDO.get("plateDetail").values().stream().collect(Collectors.toList()));
|
||||
Map<Integer, OrderItemDO> platesItems = (Map<Integer, OrderItemDO>) platesDO.get("platesItems");
|
||||
Map<Integer, OrderBodyDO> bodyItemsPlates= (Map<Integer, OrderBodyDO>) platesDO.get("bodyInfos");
|
||||
platesItems = orderPartsChange(bodyInfoChange, orderGroupDO, groupLists, platesItems);// item补充
|
||||
itemsList.addAll(platesItems.values());
|
||||
// System.out.println("生产单数据 " + orderDO+ " 商品信息1 " + goodsDO + " 商品信息2 "
|
||||
// + rawGoodsDO + " 板材信息 " + new ArrayList<>(orderPlatesDO.values())
|
||||
// + " 配件信息 " + new ArrayList<>(orderPartsDO.values())
|
||||
// + " 柜体信息 " + new ArrayList<>(bodyInfoChange.values())
|
||||
// + " 加工组信息 " + orderGroupDO
|
||||
// + " 配件Item " + partsItems + " 板材Item " + platesItems);
|
||||
map.put("orderDO", order);
|
||||
map.put("itemDO", itemsList);
|
||||
System.out.println(" bodyItemsPlates " + bodyItemsPlates);
|
||||
map.put("bodyDO", bodyItemsPlates.values().stream().collect(Collectors.toList()));
|
||||
return map;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param bodyInfoChange: BoxId body
|
||||
* @param orderGroupDO: ModuleID group
|
||||
* @param groupLists: ModuleID 板材、配件id
|
||||
* @param partsItems: ItemID item
|
||||
* @return Map<Integer, OrderItemDO>
|
||||
* @author Administrator
|
||||
* @date 2024/5/8
|
||||
*/
|
||||
public Map<Integer, OrderItemDO> orderPartsChange(Map<Integer, OrderBodyDO> bodyInfoChange, Map<Integer, OrderGroupDO> orderGroupDO,
|
||||
Map<Integer, List<Integer>> groupLists, Map<Integer, OrderItemDO> partsItems) {
|
||||
|
||||
groupLists.forEach((k, v) -> {
|
||||
AtomicReference<Integer> groupNum = new AtomicReference<>(0);
|
||||
v.forEach(v1 -> {
|
||||
if (partsItems.get(v1) != null) {
|
||||
partsItems.get(v1).setGroupId(orderGroupDO.get(k).getId());
|
||||
groupNum.getAndSet(groupNum.get() + 1);
|
||||
}
|
||||
});
|
||||
orderGroupDO.get(k).setPlateNum(groupNum.get());
|
||||
});
|
||||
|
||||
// partsItems.forEach((k, v) -> {
|
||||
// if (bodyInfoChange.get(Integer.parseInt(String.valueOf(v.getBodyId()))) != null) {
|
||||
// v.setRoomId(bodyInfoChange.get(Integer.parseInt(String.valueOf(v.getBodyId()))).getRoomId());
|
||||
// }
|
||||
// });
|
||||
return partsItems;
|
||||
}
|
||||
|
||||
/**
|
||||
* 柜体,加工组板材数量添加 !!!!!!!!!!!!!!
|
||||
*/
|
||||
|
||||
/**
|
||||
* 加工组 信息转换
|
||||
*/
|
||||
private Map<String, Map<Integer, ?>> groupInfoChange(JSONObject dataModule, Long orderId, Map<Integer, OrderBodyDO> bodyInfoChange) {
|
||||
Map<String, Map<Integer, ?>> map = new HashMap<>();
|
||||
Map<Integer, OrderGroupDO> orderGroupDOs = new HashMap<>();// 加工组id 和 加工组信息
|
||||
Map<Integer, List<Integer>> groupLists = new HashMap<>();// 加工组id 和 详细信息
|
||||
|
||||
|
||||
if (dataModule.getJSONArray("value") != null &&
|
||||
!dataModule.getJSONArray("value").isEmpty()) {
|
||||
JSONArray groupsLists = dataModule.getJSONArray("value");
|
||||
for (int i = 0; i < groupsLists.size(); i++) {
|
||||
JSONObject group = groupsLists.getJSONObject(i);
|
||||
|
||||
OrderGroupDO bodyInfo = OrderGroupDO.builder()
|
||||
.id((Long) identifierGenerator.nextId(null))
|
||||
.orderId(orderId)
|
||||
.bodyId(bodyInfoChange.get(group.getInteger("BoxID")).getId())//group.getLong("BoxID")
|
||||
.groupTypeId(Long.valueOf(group.getInteger("ModuleTypeID")))
|
||||
.groupTypeName("无")
|
||||
.name(group.getString("ModuleTypeName"))
|
||||
.width(group.getDouble("Width"))
|
||||
.height(group.getDouble("Length"))
|
||||
.depth(group.getDouble("Thickness"))
|
||||
.multiNum(0)
|
||||
.plateNum(0)
|
||||
.unregularNum(0)
|
||||
.filename("无")
|
||||
.remark("无")
|
||||
.build();
|
||||
groupLists.put(group.getInteger("ModuleID"), jsonArrayToList(group.getJSONArray("ItemIDList")));
|
||||
orderGroupDOs.put(group.getInteger("ModuleID"), bodyInfo);
|
||||
}
|
||||
}
|
||||
|
||||
map.put("lists", groupLists);
|
||||
map.put("orderGroup", orderGroupDOs);
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* 生产单信息转换
|
||||
*
|
||||
* @param dataPlates:
|
||||
* @return OrderDO
|
||||
* @author Administrator
|
||||
* @date 2024/4/30
|
||||
*/
|
||||
public OrderDO orderInfoChange(JSONObject dataPlates, Long orderId) {
|
||||
// 获取 Orders 字段对应的数组
|
||||
JSONObject order = dataPlates.getJSONArray("Orders").getJSONObject(0);
|
||||
|
||||
// 如果 Orders 数组不为空,则获取第一个订单对象
|
||||
if (order != null && !order.isEmpty()) {
|
||||
// 获取生产单信息
|
||||
// 使用 DateTimeFormatter 解析日期字符串
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||
LocalDate orderDate = LocalDate.parse(order.getString("SaleDate"), formatter);
|
||||
LocalDate deliveryDate = LocalDate.parse(order.getString("DeliveryDate"), formatter);
|
||||
|
||||
OrderDO orderDO = OrderDO.builder()
|
||||
.id(orderId)
|
||||
.parentNo(0L)
|
||||
.orderDate(orderDate.atStartOfDay())
|
||||
.deliveryDate(deliveryDate.atStartOfDay())
|
||||
.orderType(1)
|
||||
.orderSort(0)
|
||||
.dataType(2)
|
||||
.status(0)
|
||||
.customOrderNo(order.getString("CustomOrderNo"))
|
||||
.customer(order.getString("Consigee"))
|
||||
.address(order.getString("ConsigeeAddress"))
|
||||
.phoneNumber(order.getString("ConsigeePhone"))
|
||||
.dealer(order.getString("CustomName"))
|
||||
.dealerPhoneNumber("无")
|
||||
.salesman(order.getString("SalePerson"))
|
||||
.splitter("无")
|
||||
.remark(order.getString("Remark"))
|
||||
.build();
|
||||
return orderDO;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* raw商品信息转换 和 商品信息转换
|
||||
*
|
||||
* @param dataRawGoods:
|
||||
* @param orderId:
|
||||
* @return Map<String, Map < Integer, ?>> String 标识 , Integer:商品ID标识,RawGoodsDO:商品信息
|
||||
* @author Administrator
|
||||
* @date 2024/4/30
|
||||
*/
|
||||
public Map<String, Map<Integer, ?>> rawGoodsInfoChange(JSONObject dataRawGoods, Long orderId) {
|
||||
Map<String, Map<Integer, ?>> map = new HashMap<>();
|
||||
Map<Integer, RawGoodsDO> rawGoodsDOS = new HashMap<>();
|
||||
Map<Integer, GoodsDO> goodsDOS = new HashMap<>();
|
||||
|
||||
if (dataRawGoods.getJSONObject("value").getJSONArray("List") != null &&
|
||||
!dataRawGoods.getJSONObject("value").getJSONArray("List").isEmpty()) {
|
||||
JSONArray goodsLists = dataRawGoods.getJSONObject("value").getJSONArray("List");
|
||||
for (int i = 0; i < goodsLists.size(); i++) {
|
||||
JSONObject goods = goodsLists.getJSONObject(i);
|
||||
|
||||
RawGoodsDO rawGoodsDO = RawGoodsDO.builder()
|
||||
.id((Long) identifierGenerator.nextId(null))
|
||||
.orderId(orderId)
|
||||
.rawGoodsId(String.valueOf(goods.getLong("GoodsID")))
|
||||
.goodsName(goods.getString("GoodsName"))
|
||||
.material(goods.getString("Material"))
|
||||
.color(goods.getString("Color"))
|
||||
.thickness(goods.getDouble("Thickness"))
|
||||
.price(goods.getDouble("Price"))
|
||||
.brand(goods.getString("Brand"))
|
||||
.spec(goods.getString("Spec"))
|
||||
.build();
|
||||
rawGoodsDOS.put(goods.getInteger("GoodsID"), rawGoodsDO);
|
||||
|
||||
GoodsDO goodsDO = GoodsDO.builder()
|
||||
.id((Long) identifierGenerator.nextId(null))
|
||||
.orderId(orderId)
|
||||
.rawGoodsId(rawGoodsDO.getId())
|
||||
.goodsId(goods.getLong("GoodsID"))
|
||||
.goodsName(goods.getString("GoodsName"))
|
||||
.material(goods.getString("Material"))
|
||||
.color(goods.getString("Color"))
|
||||
.width(BigDecimal.valueOf(goods.getDouble("Width")))
|
||||
.height(BigDecimal.valueOf(goods.getDouble("Height")))
|
||||
.thickness(BigDecimal.valueOf(goods.getDouble("Thickness")))
|
||||
.price(BigDecimal.valueOf(goods.getDouble("Price")))
|
||||
.brand(goods.getString("Brand"))
|
||||
.spec(goods.getString("Spec"))
|
||||
.build();
|
||||
goodsDOS.put(goods.getInteger("GoodsID"), goodsDO);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
map.put("rawGoodsDOS", rawGoodsDOS);
|
||||
map.put("goodsDOS", goodsDOS);
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* 柜体信息转换
|
||||
*
|
||||
* @param dataBody:
|
||||
* @return Map<Integer, OrderBodyDO> Integer:柜体ID标识,OrderBodyDO:柜体信息(差数据)
|
||||
* @author Administrator
|
||||
* @date 2024/4/30
|
||||
*/
|
||||
private Map<Integer, OrderBodyDO> bodyInfoChange(JSONObject dataBody, Long orderId) {
|
||||
Map<Integer, OrderBodyDO> bodyInfos = new HashMap<>();
|
||||
|
||||
if (dataBody.getJSONObject("value").getJSONArray("List") != null &&
|
||||
!dataBody.getJSONObject("value").getJSONArray("List").isEmpty()) {
|
||||
JSONArray bodyLists = dataBody.getJSONObject("value").getJSONArray("List");
|
||||
for (int i = 0; i < bodyLists.size(); i++) {
|
||||
JSONObject body = bodyLists.getJSONObject(i);
|
||||
OrderBodyDO bodyInfo = OrderBodyDO.builder()
|
||||
.id((Long) identifierGenerator.nextId(null))
|
||||
.orderId(orderId)
|
||||
.roomId(Long.valueOf(body.getString("RoomID")))
|
||||
.roomName(body.getString("Room"))
|
||||
.name(body.getString("Name"))
|
||||
.width(body.getDouble("Width"))
|
||||
.height(body.getDouble("Height"))
|
||||
.depth(body.getDouble("Depth"))
|
||||
.multiNum(0)
|
||||
.plateNum(0)
|
||||
.unregularNum(0)
|
||||
.filename("无")
|
||||
.remark("无")
|
||||
.build();
|
||||
bodyInfos.put(body.getInteger("BoxID"), bodyInfo);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return bodyInfos;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* JSONArray转List<Integer>
|
||||
*/
|
||||
public List<Integer> jsonArrayToList(JSONArray jsonArray) {
|
||||
List<Integer> list = new ArrayList<>();
|
||||
for (int i = 0; i < jsonArray.size(); i++) {
|
||||
list.add(jsonArray.getInteger(i));
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
/**
|
||||
* 配件信息转存 还没有存备注!!!!!!!!!!!!!!!!!!!!
|
||||
*
|
||||
* @param value: JSON数据
|
||||
* @param orderId:
|
||||
* @param goodsDOMap:
|
||||
* @return Map<Integer, OrderPartsDO> Integer指配件的dataId标识id
|
||||
* @author Administrator
|
||||
* @date 2024/4/30
|
||||
*/
|
||||
public Map<String, Map<Integer, ?>> partsInfoChange(JSONObject value, Long orderId, Map<Integer, GoodsDO> goodsDOMap, Map<Integer, OrderBodyDO> bodyInfos) {
|
||||
Map<String, Map<Integer, ?>> map = new HashMap<>();
|
||||
Map<Integer, OrderPartsDO> partsInfos = new HashMap<>();
|
||||
Map<Integer, OrderItemDO> partsItem = new HashMap<>();
|
||||
|
||||
if (value != null && !value.isEmpty()) {
|
||||
JSONArray partsLists = value.getJSONObject("value").getJSONArray("List");
|
||||
for (int i = 0; i < partsLists.size(); i++) {
|
||||
JSONObject parts = partsLists.getJSONObject(i);
|
||||
Long partsId = (Long) identifierGenerator.nextId(null);
|
||||
OrderPartsDO partsInfo = OrderPartsDO.builder()
|
||||
.id(partsId)
|
||||
.orderId(orderId)
|
||||
.goodsId(String.valueOf(goodsDOMap.get(parts.getInteger("GoodsID")) != null
|
||||
? goodsDOMap.get(parts.getInteger("GoodsID")).getId() : parts.getInteger("GoodsID")))
|
||||
.name(parts.getString("Name"))
|
||||
.material(String.valueOf(goodsDOMap.get(parts.getInteger("GoodsID")) != null
|
||||
? goodsDOMap.get(parts.getInteger("GoodsID")).getMaterial() : ""))
|
||||
.type(parts.getString("ObjectType"))
|
||||
.model(parts.getString("Model"))
|
||||
.spec(parts.getString("Spec"))
|
||||
.brand(parts.getString("Brand"))
|
||||
.factory(parts.getString("Factory"))
|
||||
.unit(parts.getString("Units"))
|
||||
.price(parts.getDouble("Price"))
|
||||
.isComposite(parts.getBoolean("IsComposite"))
|
||||
.remark(parts.getString("SpecExtras"))
|
||||
.build();
|
||||
partsInfos.put(parts.getInteger("DataID"), partsInfo);
|
||||
|
||||
// item 明细
|
||||
OrderItemDO item = OrderItemDO.builder()
|
||||
.id((Long) identifierGenerator.nextId(null))
|
||||
.orderId(orderId)
|
||||
.type(2)
|
||||
.roomId(bodyInfos.get(parts.getInteger("BoxID")).getRoomId())
|
||||
.bodyId(bodyInfos.get(parts.getInteger("BoxID")).getId())
|
||||
.planId(0L)
|
||||
.packageId(0L)
|
||||
.groupId(0L)
|
||||
.partsId(partsId)
|
||||
.num(parts.getDouble("Num"))
|
||||
.build();
|
||||
partsItem.put(parts.getInteger("DataID"), item);
|
||||
}
|
||||
}
|
||||
|
||||
map.put("partsInfos", partsInfos);
|
||||
map.put("partsItems", partsItem);
|
||||
return map;
|
||||
}
|
||||
|
||||
private Integer num = 0;
|
||||
/**
|
||||
* 板材信息转换 写表 Integer指板材的ItemID板id 还没有存备注!!!!!!!!!!!!!!!!!!!!
|
||||
*/
|
||||
private Map<String, Map<Integer, ?>> platesInfoChange(JSONObject value, JSONObject dataPlates, Long orderId, Map<Integer, GoodsDO> goodsDOMap, Map<Integer, OrderBodyDO> bodyInfos) {
|
||||
// 板材 写ES
|
||||
Map<Integer, PlateDetail> plateDetail = platesDetailChange(value);
|
||||
|
||||
Map<String, Map<Integer, ?>> map = new HashMap<>();
|
||||
Map<Integer, PlateDO> platesInfos = new HashMap<>();
|
||||
Map<Integer, OrderItemDO> platesItem = new HashMap<>();
|
||||
|
||||
if (dataPlates.getJSONObject("value") != null &&
|
||||
!dataPlates.getJSONObject("value").isEmpty()) {
|
||||
JSONArray plateLists = dataPlates.getJSONObject("value").getJSONArray("List");
|
||||
for (int i = 0; i < plateLists.size(); i++) {
|
||||
JSONObject plate = plateLists.getJSONObject(i);
|
||||
|
||||
Integer type = Integer.valueOf(dictDataApi.parseDictData("order_plate_type",
|
||||
plate.getString("BoardType"))
|
||||
.getData().getValue());
|
||||
Long plateId = (Long) identifierGenerator.nextId(null);
|
||||
PlateDO plateInfo = PlateDO.builder()
|
||||
.id(plateId)
|
||||
.orderId(orderId)
|
||||
.name(plate.getString("BoardName"))
|
||||
.plateNo(plate.getString("CustBlockNo"))
|
||||
.type(type)
|
||||
.goodsId(goodsDOMap.get(plate.getInteger("GoodsID")) != null
|
||||
? goodsDOMap.get(plate.getInteger("GoodsID")).getId() : plate.getInteger("GoodsID"))
|
||||
.width(BigDecimal.valueOf(plate.getDouble("CutWidth")))
|
||||
.height(BigDecimal.valueOf(plate.getDouble("CutWidth")))
|
||||
.thickness(goodsDOMap.get(plate.getInteger("GoodsID")) != null
|
||||
? goodsDOMap.get(plate.getInteger("GoodsID")).getThickness() : BigDecimal.valueOf(0L))
|
||||
.splitHeight(BigDecimal.valueOf(plate.getDouble("SpliteHeight")))
|
||||
.splitThickness(BigDecimal.valueOf(plate.getDouble("SpliteThickness")))
|
||||
.splitWidth(BigDecimal.valueOf(plate.getDouble("SpliteWidth")))
|
||||
.sealLeft(BigDecimal.valueOf(plate.getDouble("SealedLeft")))
|
||||
.sealRight(BigDecimal.valueOf(plate.getDouble("SealedRight")))
|
||||
.sealUp(BigDecimal.valueOf(plate.getDouble("SealedUp")))
|
||||
.sealDown(BigDecimal.valueOf(plate.getDouble("SealedDown")))
|
||||
.area(plateDetail.get(plate.getInteger("BlockNo")).getSealAcreage())
|
||||
.texture(plateDetail.get(plate.getInteger("BlockNo")).getTexture())
|
||||
.holeFace(0)
|
||||
.holeArrange(0)
|
||||
.unregularPointCount(0)
|
||||
.frontHoleCount(plate.getInteger("FrontHoleCount"))
|
||||
.sideHoleCount(plate.getInteger("BackHoleCount"))
|
||||
.sideHoleCount(plate.getInteger("SideHoleCount"))
|
||||
.frontModelCount(plate.getInteger("FrontModelCount"))
|
||||
.backModelCount(plate.getInteger("BackModelCount"))
|
||||
.isDoor(plateDetail.get(plate.getInteger("BlockNo")).getOpenDoorType() == 0)
|
||||
.openDoorType(plate.getInteger("OpenDoorType"))
|
||||
.offsetX(plateDetail.get(plate.getInteger("BlockNo")).getOffsetX())
|
||||
.offsetY(plateDetail.get(plate.getInteger("BlockNo")).getOffsetY())
|
||||
.isArcAcross(false)
|
||||
.moduleTypeId(0L)
|
||||
.isSculpt(plate.getBoolean("IsModel"))
|
||||
.isSpecialShaped(plate.getBoolean("UnRegular"))
|
||||
.isCancel(false)
|
||||
.remark("无")
|
||||
.build();
|
||||
|
||||
// item 明细
|
||||
OrderItemDO itemPlate = OrderItemDO.builder()
|
||||
.id((Long) identifierGenerator.nextId(null))
|
||||
.orderId(orderId)
|
||||
.type(1)
|
||||
.roomId(bodyInfos.get(plate.getInteger("BoxID")).getRoomId())
|
||||
.bodyId(bodyInfos.get(plate.getInteger("BoxID")).getId())
|
||||
.planId(0L)
|
||||
.packageId(0L)
|
||||
.groupId(0L)
|
||||
.partsId(0L)
|
||||
.plateId(plateId)
|
||||
.num(0.0)
|
||||
.build();
|
||||
|
||||
if (plateDetail.get(plate.getInteger("BlockNo")) != null) {
|
||||
plateDetail.get(plate.getInteger("BlockNo")).setId(plateId);
|
||||
}
|
||||
platesInfos.put(plate.getInteger("ItemID"), plateInfo);
|
||||
platesItem.put(plate.getInteger("ItemID"), itemPlate);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
List<OrderItemDO> platesList = platesItem.values().stream().collect(Collectors.toList());
|
||||
Map<Long, List<OrderItemDO>> platesDetail = platesList.stream()
|
||||
.collect(Collectors.groupingBy(OrderItemDO::getBodyId));
|
||||
// 遍历platesDetail
|
||||
|
||||
platesDetail.forEach((k, v) -> {
|
||||
Integer specialShapedNum = 0;
|
||||
v.forEach(item -> {
|
||||
num++;
|
||||
});
|
||||
bodyInfos.forEach((n, m) -> {
|
||||
if (k==m.getId()){
|
||||
m.setPlateNum(num);
|
||||
}
|
||||
});
|
||||
});
|
||||
System.err.println(bodyInfos);
|
||||
map.put("platesInfos", platesInfos);
|
||||
map.put("platesItems", platesItem);
|
||||
map.put("plateDetail", plateDetail);
|
||||
map.put("bodyInfos", bodyInfos);
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* 板材数据转换成PlateDetail Integer指BlockID板id
|
||||
*/
|
||||
public Map<Integer, PlateDetail> platesDetailChange(JSONObject dataPlates) {
|
||||
Map<Integer, PlateDetail> plateDetails = new HashMap<>();
|
||||
// 获取 Orders 字段对应的数组
|
||||
JSONArray ordersArray = dataPlates.getJSONArray("Orders");
|
||||
// System.err.println(dataPlates);
|
||||
if (ordersArray != null && !ordersArray.isEmpty()) {
|
||||
for (int i = 0; i < ordersArray.size(); i++) {
|
||||
JSONObject order = ordersArray.getJSONObject(i);
|
||||
// 获取材料信息
|
||||
if (order.getJSONArray("Materials") != null && !order.getJSONArray("Materials").isEmpty()) {
|
||||
for (int j = 0; j < order.getJSONArray("Materials").size(); j++) {
|
||||
JSONObject material = order.getJSONArray("Materials").getJSONObject(j);
|
||||
// goodsMap.put()
|
||||
// 板件信息
|
||||
if (material.getJSONArray("Blocks") != null && !material.getJSONArray("Blocks").isEmpty()) {
|
||||
for (int k = 0; k < material.getJSONArray("Blocks").size(); k++) {
|
||||
JSONObject block = material.getJSONArray("Blocks").getJSONObject(k);// 每块板
|
||||
|
||||
PlateDetail plateDetail = PlateDetail.builder()
|
||||
.bodyNo(block.getString("BoxNo"))
|
||||
.plateNo(block.getString("BlockNo"))
|
||||
.name(block.getString("BlockName"))
|
||||
.customPlateNo(block.getString("CustomNo"))
|
||||
.roomsName(block.getString("RoomName"))
|
||||
.bodyName(block.getString("BoxName"))
|
||||
.group(block.getString("ProcessGroupName"))
|
||||
.multiNum(1)
|
||||
.plateWidth(block.getBigDecimal("Width"))
|
||||
.plateLength(block.getBigDecimal("Length"))
|
||||
.acreage(block.getBigDecimal("Size"))
|
||||
.splitWidth(block.getBigDecimal("CuttingWidth"))
|
||||
.splitLength(block.getBigDecimal("CuttingLength"))
|
||||
.sealAcreage(block.getBigDecimal("CuttingSize"))
|
||||
.isUnRegular(block.getBoolean("IsUnRegular"))
|
||||
.sealLeft(block.getBigDecimal("BorderLeft"))
|
||||
.sealRight(block.getBigDecimal("BorderRight"))
|
||||
.sealUp(block.getBigDecimal("BorderUpper"))
|
||||
.sealDown(block.getBigDecimal("BorderUnder"))
|
||||
.texture(block.getInteger("Wave"))
|
||||
.typographicFace(Integer.valueOf(block.getString("PlaceFace")))
|
||||
.openDoorType(Integer.valueOf(block.getString("OpenDoorType")))
|
||||
.offsetX(block.getBigDecimal("OffsetX"))
|
||||
.offsetY(block.getBigDecimal("OffsetY"))
|
||||
.pointDetail(getPointDetail(block, 1))
|
||||
.rawPointDetail(getPointDetail(block, 3))
|
||||
.holeDetail(getHoleDetail(block, 1))
|
||||
.sideHoleDetail(getHoleDetail(block, 3))
|
||||
.contourDetail(getModelDetail(block))
|
||||
// 排钻类型
|
||||
.drillsInfos(getDrillsInfo(block))
|
||||
.build();
|
||||
|
||||
if (block.getJSONObject("ExtraRemark") != null) {
|
||||
if (block.getJSONObject("ExtraRemark").getJSONObject("extra") != null)
|
||||
plateDetail.setBoardType(block.getJSONObject("ExtraRemark").getJSONObject("extra").getString("boardType"))
|
||||
.setThroughHoleCount(Double.valueOf(block.getJSONObject("ExtraRemark").getJSONObject("extra").getString("throughHoleCount")))
|
||||
.setThroughModelCount(Double.valueOf(block.getJSONObject("ExtraRemark").getJSONObject("extra").getString("throughModelCount")))
|
||||
.setHas2DModel(Boolean.valueOf(block.getJSONObject("ExtraRemark").getJSONObject("extra").getString("has2DModel")))
|
||||
.setHas3DModel(Boolean.valueOf(block.getJSONObject("ExtraRemark").getJSONObject("extra").getString("has3DModel")))
|
||||
.setRemark(remarkToMap(block))
|
||||
.setSideRemark(edgeRemarkToMap(block.getJSONObject("ExtraRemark").getJSONObject("extra")));
|
||||
}
|
||||
plateDetails.put(block.getInteger("BlockNo"), plateDetail);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
// System.out.println("板块 " + plateDetails);
|
||||
}
|
||||
|
||||
} else {
|
||||
System.out.println("JSON 数据中没有订单信息(Orders 数组为空)。");
|
||||
}
|
||||
|
||||
return plateDetails;
|
||||
}
|
||||
|
||||
|
||||
// 异形板的开料轮廓 (type 为1,不含封边;其他为,含封边)
|
||||
private List<PointDetail> getPointDetail(JSONObject block, Integer type) {
|
||||
List<PointDetail> pointDetailList = new ArrayList<>();
|
||||
|
||||
if (type == 1) { // 不含封边
|
||||
if (block.getJSONArray("Points") != null && !block.getJSONArray("Points").isEmpty()) {
|
||||
for (int i = 0; i < block.getJSONArray("Points").size(); i++) {
|
||||
JSONObject point = block.getJSONArray("Points").getJSONObject(i);
|
||||
pointDetailList.add(PointDetail.builder()
|
||||
.pointX(Double.valueOf(point.getString("X")))
|
||||
.pointY(Double.valueOf(point.getString("Y")))
|
||||
.curve(Double.valueOf(point.getString("Curve")))
|
||||
.build());
|
||||
}
|
||||
}
|
||||
} else { // 含封边
|
||||
if (block.getJSONArray("OrgPoints") != null && !block.getJSONArray("OrgPoints").isEmpty()) {
|
||||
for (int i = 0; i < block.getJSONArray("OrgPoints").size(); i++) {
|
||||
JSONObject rawPoint = block.getJSONArray("OrgPoints").getJSONObject(i);
|
||||
pointDetailList.add(PointDetail.builder()
|
||||
.pointX(Double.valueOf(rawPoint.getString("X")))
|
||||
.pointY(Double.valueOf(rawPoint.getString("Y")))
|
||||
.curve(Double.valueOf(rawPoint.getString("Curve")))
|
||||
.sealSize(Double.valueOf(rawPoint.getString("Edge")))
|
||||
.build());
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
return pointDetailList;
|
||||
}
|
||||
|
||||
// 孔明细板数据解析 (type 为1,正面;3,侧面)
|
||||
private List<HoleDetail> getHoleDetail(JSONObject block, Integer type) {
|
||||
List<HoleDetail> holeDetails = new ArrayList<>();
|
||||
if (type == 1) { // 1,正面
|
||||
if (block.getJSONArray("Holes") != null && !block.getJSONArray("Holes").isEmpty()) {
|
||||
for (int i = 0; i < block.getJSONArray("Holes").size(); i++) {
|
||||
JSONObject hole = block.getJSONArray("Holes").getJSONObject(i);
|
||||
holeDetails.add(HoleDetail.builder()
|
||||
.startX(Double.valueOf(hole.getString("X")))
|
||||
.startY(Double.valueOf(hole.getString("Y")))
|
||||
.faceType(1)
|
||||
.radius(Double.valueOf(hole.getString("Diameter")) / 2)
|
||||
.depth(Double.valueOf(hole.getString("Depth")))
|
||||
.build());
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (block.getJSONArray("SideHoles") != null && !block.getJSONArray("SideHoles").isEmpty()) {
|
||||
for (int i = 0; i < block.getJSONArray("SideHoles").size(); i++) {
|
||||
JSONObject hole = block.getJSONArray("SideHoles").getJSONObject(i);
|
||||
String[] startPoints = splitAndTrim(hole.getString("StartPoint"));
|
||||
String[] endPoints = splitAndTrim(hole.getString("EndPoint"));
|
||||
try {
|
||||
holeDetails.add(HoleDetail.builder()
|
||||
.startX(Double.valueOf(startPoints[0]))
|
||||
.startY(Double.valueOf(startPoints[1]))
|
||||
.startZ(Double.valueOf(startPoints[2]))
|
||||
.endX(Double.valueOf(endPoints[0]))
|
||||
.endY(Double.valueOf(endPoints[1]))
|
||||
.endZ(Double.valueOf(endPoints[2]))
|
||||
.faceType(3)
|
||||
.radius(Double.valueOf(hole.getString("Diameter")) / 2)
|
||||
.depth(Double.valueOf(hole.getString("Depth")))
|
||||
.build());
|
||||
} catch (Exception e) {
|
||||
System.out.println("HoleDetail " + hole);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return holeDetails;
|
||||
}
|
||||
|
||||
// 造型明细板数据解析 (type 为1,正面;3,侧面)
|
||||
private List<ModelDetail> getModelDetail(JSONObject block) {
|
||||
List<ModelDetail> modelDetails = new ArrayList<>();
|
||||
|
||||
if (block.getJSONArray("Models") != null && !block.getJSONArray("Models").isEmpty()) {
|
||||
for (int i = 0; i < block.getJSONArray("Models").size(); i++) {
|
||||
JSONObject model = block.getJSONArray("Models").getJSONObject(i);
|
||||
|
||||
List<PointList> pointLists = new ArrayList<>();
|
||||
if (model.getJSONArray("Points") != null && !model.getJSONArray("Points").isEmpty()) {
|
||||
for (int j = 0; j < model.getJSONArray("Points").size(); j++) {
|
||||
JSONObject point = model.getJSONArray("Points").getJSONObject(j);
|
||||
String[] points = splitAndTrim(point.getString("Pos"));
|
||||
pointLists.add(PointList.builder()
|
||||
.pointX(Double.valueOf(points[0]))
|
||||
.pointY(Double.valueOf(points[1]))
|
||||
.pointZ(Double.valueOf(points[2]))
|
||||
.curve(Double.valueOf(point.getString("Curve")))
|
||||
.build());
|
||||
}
|
||||
}
|
||||
|
||||
List<OffSetList> offSetLists = new ArrayList<>();
|
||||
if (model.getJSONArray("OffsetList") != null && !model.getJSONArray("OffsetList").isEmpty()) {
|
||||
for (int j = 0; j < model.getJSONArray("OffsetList").size(); j++) {
|
||||
JSONObject offSet = model.getJSONArray("OffsetList").getJSONObject(j);
|
||||
offSetLists.add(OffSetList.builder()
|
||||
.value(Double.valueOf(offSet.getString("Value")))
|
||||
.name(offSet.getString("Name"))
|
||||
.radius(Double.valueOf(offSet.getString("Diameter")) / 2)
|
||||
.angle(Double.valueOf(offSet.getString("Angle")))
|
||||
.depth(Double.valueOf(offSet.getString("Depth")))
|
||||
.build());
|
||||
}
|
||||
}
|
||||
modelDetails.add(ModelDetail.builder()
|
||||
.depth(Double.valueOf(model.getString("Depth")))
|
||||
.faceType(Integer.valueOf(model.getString("Face")))
|
||||
.knifeName(model.getString("TooINo"))
|
||||
.knifeRadius(Double.valueOf(model.getString("Diameter")) / 2)
|
||||
.pointList(pointLists)
|
||||
.offSetList(offSetLists)
|
||||
.build());
|
||||
}
|
||||
}
|
||||
|
||||
return modelDetails;
|
||||
}
|
||||
|
||||
// 排钻数据
|
||||
private List<DrillsInfo> getDrillsInfo(JSONObject block) {
|
||||
List<DrillsInfo> drillsInfos = new ArrayList<>();
|
||||
|
||||
if (block.getJSONArray("drills") != null && !block.getJSONArray("drills").isEmpty()) {
|
||||
for (int i = 0; i < block.getJSONArray("drills").size(); i++) {
|
||||
JSONObject drill = block.getJSONArray("drills").getJSONObject(i);
|
||||
drillsInfos.add(DrillsInfo.builder()
|
||||
.name(drill.getString("name"))
|
||||
.type(drill.getString("type"))
|
||||
.face(drill.getString("face"))
|
||||
.count(Double.valueOf(drill.getString("count")))
|
||||
.build());
|
||||
}
|
||||
}
|
||||
return drillsInfos;
|
||||
}
|
||||
|
||||
// String[] 以逗号分割,去空格
|
||||
public String[] splitAndTrim(String str) {
|
||||
String[] strs = str.split(",");
|
||||
for (int i = 0; i < strs.length; i++) {
|
||||
strs[i] = strs[i].trim();
|
||||
}
|
||||
return strs;
|
||||
}
|
||||
|
||||
|
||||
// 将remark转为map
|
||||
public Map<String, String> remarkToMap(JSONObject block) {
|
||||
Map<String, String> map = new HashMap<>();
|
||||
for (int i = 0; i < 4; i++) {
|
||||
if (block.getString("remark" + i) != null && !block.getString("remark" + i).isEmpty()) {
|
||||
map.put("remark" + i, block.getString("remark" + i));
|
||||
}
|
||||
}
|
||||
return map;
|
||||
}
|
||||
|
||||
// 将remark转为map
|
||||
public Map<String, String> edgeRemarkToMap(JSONObject edgeRemark) {
|
||||
Map<String, String> map = new HashMap<>();
|
||||
if (edgeRemark.getJSONArray("edgeRemarks") != null && !edgeRemark.getJSONArray("edgeRemarks").isEmpty()) {
|
||||
for (int i = 0; i < edgeRemark.getJSONArray("edgeRemarks").size(); i++) {
|
||||
if (edgeRemark.getJSONArray("edgeRemarks").getString(i) != null && !edgeRemark.getJSONArray("edgeRemarks").getString(i).isEmpty()) {
|
||||
map.put(String.valueOf(i), edgeRemark.getJSONArray("edgeRemarks").getString(i));
|
||||
}
|
||||
}
|
||||
}
|
||||
return map;
|
||||
}
|
||||
}
|
||||
+3
-1
@@ -129,7 +129,9 @@ public class ProcessGroupServiceImpl implements ProcessGroupService {
|
||||
List<ProcessGroupDO> processGroupDOList = processGroupMapper.selectList(new LambdaQueryWrapperX<ProcessGroupDO>()
|
||||
.likeIfPresent(ProcessGroupDO::getName, name)
|
||||
.eq(ProcessGroupDO::getOrganId, OrganContextHolder.getOrganId())
|
||||
.select(ProcessGroupDO::getId, ProcessGroupDO::getName));
|
||||
.select(ProcessGroupDO::getId, ProcessGroupDO::getName,
|
||||
ProcessGroupDO::getIsDefault, ProcessGroupDO::getSort, ProcessGroupDO::getDescription,
|
||||
ProcessGroupDO::getItems, ProcessGroupDO::getCreateTime, ProcessGroupDO::getUpdateTime));
|
||||
return BeanUtils.toBean(processGroupDOList, ProcessGroupRespVO.class);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user