mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
bug修改
This commit is contained in:
+1
@@ -53,4 +53,5 @@ public interface ErrorCodeConstants {
|
||||
ErrorCode APP_TOKEN_ERROR = new ErrorCode(1_002_029_006, "token获取失败");
|
||||
ErrorCode PLATE_DATA_ERROR = new ErrorCode(1_002_029_006, "板材数据获取错误");
|
||||
ErrorCode PARTS_DATA_ERROR = new ErrorCode(1_002_029_006, "配件数据获取错误");
|
||||
ErrorCode BODY_DATA_ERROR = new ErrorCode(1_002_029_006, "柜体数据获取错误");
|
||||
}
|
||||
|
||||
+4
@@ -17,4 +17,8 @@ public interface ApiOrderService {
|
||||
|
||||
@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);
|
||||
|
||||
}
|
||||
|
||||
+16
-1
@@ -414,8 +414,23 @@ public class OrderServiceImpl implements OrderService {
|
||||
JSONObject value = apiOrderService.getApiOrderPartsMessage(token, jsonParts).getJSONObject("value");
|
||||
mergeJSONObjects(dataParts, value);
|
||||
}
|
||||
// 柜体信息转换
|
||||
JSONObject jsonBody = new JSONObject();
|
||||
jsonBody.put("curr_page", 1);
|
||||
jsonBody.put("page_count", PARTS_PAGE_MAX);
|
||||
jsonBody.put("order_no", orderNo);
|
||||
JSONObject body = apiOrderService.getApiOrderBodyMessage(token, jsonBody);
|
||||
if (!body.getString("err_code").equals("0")) {
|
||||
throw exception(BODY_DATA_ERROR);
|
||||
}
|
||||
JSONObject dataBody = new JSONObject();
|
||||
for (int i = 1; i <= dataBody.getJSONObject("value").getInteger("PageCount"); i++) {
|
||||
jsonParts.put("curr_page", i);
|
||||
JSONObject value = apiOrderService.getApiOrderPartsMessage(token, jsonBody).getJSONObject("value");
|
||||
mergeJSONObjects(dataBody, value);
|
||||
}
|
||||
// 转换
|
||||
List<PlateDetail> plateDetails = (List<PlateDetail>) apiTypeChangeRealize.apiPlateDataChange(dataPlates.getJSONObject("value"),dataParts);
|
||||
List<PlateDetail> plateDetails = (List<PlateDetail>) apiTypeChangeRealize.apiPlateDataChange(dataPlates.getJSONObject("value"),dataParts,dataBody);
|
||||
System.out.println(plateDetails);
|
||||
return null;
|
||||
}
|
||||
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
package com.cf.imes.module.executor.util.deviseData.dataTwo;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* 柜体基本信息
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class BodyInfo {
|
||||
|
||||
// 板件所属信息
|
||||
private String roomsName; //房间名称
|
||||
private String roomNo; // 房间号
|
||||
private String bodyName; //柜体名
|
||||
private String bodyNo; // 柜体号
|
||||
// 柜体 长 宽 深
|
||||
private Double width;
|
||||
private Double height;
|
||||
private Double depth;
|
||||
|
||||
}
|
||||
+1
@@ -31,6 +31,7 @@ public class PlateDetail {
|
||||
|
||||
// 板件所属信息
|
||||
private String roomsName; //房间名称
|
||||
private String roomNo; // 房间号
|
||||
private String bodyName; //柜体名
|
||||
private String bodyNo; // 柜体号
|
||||
// 柜体 长 宽 深
|
||||
|
||||
+89
-31
@@ -2,11 +2,16 @@ 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.order.OrderDO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.rawgoods.RawGoodsDO;
|
||||
import com.cf.imes.module.executor.util.deviseData.dataTwo.*;
|
||||
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.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.ArrayList;
|
||||
@@ -19,10 +24,14 @@ import java.util.stream.Collectors;
|
||||
/**
|
||||
* 实现数据格式转换
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
||||
public class ApiTypeChangeRealize{
|
||||
public <T> List<?> apiPlateDataChange(JSONObject dataPlates, JSONObject dataParts){
|
||||
@Slf4j
|
||||
@Component
|
||||
public class ApiTypeChangeRealize {
|
||||
|
||||
@Resource
|
||||
private IdentifierGenerator identifierGenerator;
|
||||
|
||||
public <T> List<?> apiPlateDataChange(JSONObject dataPlates, JSONObject dataParts, JSONObject dataBody) {
|
||||
|
||||
// 配件数据分类
|
||||
List<PartsInfo> partsInfos = partsInfoChange(dataParts);
|
||||
@@ -31,18 +40,54 @@ public class ApiTypeChangeRealize{
|
||||
partsInfo -> partsInfo.getBodyNo() != null ? partsInfo.getBodyNo() : " ",
|
||||
Collectors.toList()
|
||||
));
|
||||
|
||||
// 柜体信息
|
||||
List<BodyInfo> bodyInfos = bodyInfoChange(dataBody);
|
||||
Map<String, List<BodyInfo>> bodyMap = bodyInfos.stream()
|
||||
.collect(Collectors.groupingBy(
|
||||
bodyInfo -> bodyInfo.getBodyNo() != null ? bodyInfo.getBodyNo() : " ",
|
||||
Collectors.toList()
|
||||
));
|
||||
// 放入板材
|
||||
List<PlateDetail> plateDetails = platesInfoChange(dataPlates);
|
||||
List<PlateDetail> plateDetails = platesInfoChange(dataPlates,);
|
||||
for (PlateDetail plateDetail : plateDetails) {
|
||||
if (partsMap.get(plateDetail.getBodyNo()) != null){
|
||||
if (partsMap.get(plateDetail.getBodyNo()) != null) {
|
||||
plateDetail.setPartsInfos(partsMap.get(plateDetail.getBodyNo()));
|
||||
}
|
||||
if (bodyMap.get(plateDetail.getBodyNo()) != null) {
|
||||
BodyInfo bodyInfo = bodyMap.get(plateDetail.getBodyNo()).get(0);
|
||||
plateDetail.setRoomsName(bodyInfo.getRoomsName()).setRoomNo(bodyInfo.getRoomNo())
|
||||
.setBodyName(bodyInfo.getBodyName()).setBodyNo(bodyInfo.getBodyNo())
|
||||
.setWidth(bodyInfo.getWidth()).setHeight(bodyInfo.getHeight()).setDepth(bodyInfo.getDepth());
|
||||
}
|
||||
}
|
||||
// 生产单信息获取
|
||||
OrderDO orderDO = orderInfoChange(dataPlates);
|
||||
Long orderId = orderDO.getId();// 生产单id
|
||||
|
||||
return plateDetails;
|
||||
}
|
||||
// 生产单信息获取
|
||||
public OrderDO orderInfoChange(JSONObject dataPlates){
|
||||
|
||||
private List<BodyInfo> bodyInfoChange(JSONObject dataBody) {
|
||||
List<BodyInfo> bodyInfos = new ArrayList<>();
|
||||
|
||||
dataBody.getJSONArray("List").forEach(item -> {
|
||||
JSONObject body = (JSONObject) item;
|
||||
BodyInfo bodyInfo = BodyInfo.builder()
|
||||
.roomsName(body.getString("Room"))
|
||||
.roomNo(body.getString("RoomID"))
|
||||
.bodyName(body.getString("Name"))
|
||||
.bodyNo(body.getString("BoxID"))
|
||||
.width(body.getDouble("Width"))
|
||||
.height(body.getDouble("Height"))
|
||||
.depth(body.getDouble("Depth"))
|
||||
.build();
|
||||
bodyInfos.add(bodyInfo);
|
||||
});
|
||||
return bodyInfos;
|
||||
}
|
||||
|
||||
// 生产单信息获取
|
||||
public OrderDO orderInfoChange(JSONObject dataPlates) {
|
||||
List<PlateDetail> plateDetails = new ArrayList<>();
|
||||
// 获取 Orders 字段对应的数组
|
||||
JSONObject order = dataPlates.getJSONObject("Orders");
|
||||
@@ -50,31 +95,33 @@ public class ApiTypeChangeRealize{
|
||||
// 如果 Orders 数组不为空,则获取第一个订单对象
|
||||
if (order != null && !order.isEmpty()) {
|
||||
// 获取生产单信息
|
||||
// 使用 DateTimeFormatter 解析日期字符串
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||
LocalDate deliveryDate = LocalDate.parse(order.getString("DeliveryDate"), formatter);
|
||||
// 使用 DateTimeFormatter 解析日期字符串
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||
LocalDate deliveryDate = LocalDate.parse(order.getString("DeliveryDate"), formatter);
|
||||
|
||||
OrderDO orderDO = OrderDO.builder()
|
||||
.parentNo(0L)
|
||||
.orderType(true)
|
||||
.orderSort(0)
|
||||
.dataType(1)
|
||||
.status(0)
|
||||
.customOrderNo(order.getString("OrderNo"))
|
||||
.customer(order.getString("Consigee"))
|
||||
.address(order.getString("ConsigeeAddress"))
|
||||
.phoneNumber(order.getString("ConsigeePhone"))
|
||||
.dealer(order.getString("CustomName"))
|
||||
.salesman(order.getString("SalePerson"))
|
||||
.remark(order.getString("Remark"))
|
||||
.deliveryDate(deliveryDate.atStartOfDay())
|
||||
.build();
|
||||
return orderDO;
|
||||
OrderDO orderDO = OrderDO.builder()
|
||||
.id(identifierGenerator.nextId(null).longValue())
|
||||
.parentNo(0L)
|
||||
.orderType(true)
|
||||
.orderSort(0)
|
||||
.dataType(1)
|
||||
.status(0)
|
||||
.customOrderNo(order.getString("OrderNo"))
|
||||
.customer(order.getString("Consigee"))
|
||||
.address(order.getString("ConsigeeAddress"))
|
||||
.phoneNumber(order.getString("ConsigeePhone"))
|
||||
.dealer(order.getString("CustomName"))
|
||||
.salesman(order.getString("SalePerson"))
|
||||
.remark(order.getString("Remark"))
|
||||
.deliveryDate(deliveryDate.atStartOfDay())
|
||||
.build();
|
||||
return orderDO;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
// 板材数据转换
|
||||
public List<PlateDetail> platesInfoChange(JSONObject dataPlates){
|
||||
|
||||
// 板材数据转换
|
||||
public List<PlateDetail> platesInfoChange(JSONObject dataPlates) {
|
||||
List<PlateDetail> plateDetails = new ArrayList<>();
|
||||
// 获取 Orders 字段对应的数组
|
||||
JSONArray ordersArray = dataPlates.getJSONArray("Orders");
|
||||
@@ -82,13 +129,24 @@ public class ApiTypeChangeRealize{
|
||||
// 如果 Orders 数组不为空,则获取第一个订单对象
|
||||
if (ordersArray != null && !ordersArray.isEmpty()) {
|
||||
// 获取生产单信息
|
||||
List<RawGoodsDO> rawGoodsDOS = new ArrayList<>();
|
||||
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);
|
||||
|
||||
// rawGoodsDOS.add(RawGoodsDO.builder()
|
||||
// .id(identifierGenerator.nextId(null).longValue())
|
||||
// .orderId(organId)
|
||||
// .goodsName(material.getString("MaterialName"))
|
||||
// .material(material.getString("MaterialName"))
|
||||
// .color(material.getString("Color"))
|
||||
// .brand(material.getString("Brand"))
|
||||
// .price(material.getDouble("Price"))
|
||||
// .spec(material.getString("Spec"))
|
||||
// .unit(material.getString("Unit"))
|
||||
// .build());
|
||||
// 板件信息
|
||||
if (material.getJSONArray("Blocks") != null && !material.getJSONArray("Blocks").isEmpty()) {
|
||||
for (int k = 0; k < material.getJSONArray("Blocks").size(); k++) {
|
||||
|
||||
Reference in New Issue
Block a user