bug修改

This commit is contained in:
lym
2024-04-28 20:02:19 +08:00
parent e7c74dbb86
commit d3f84b08f1
12 changed files with 186 additions and 37 deletions
@@ -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, "柜体数据获取错误");
}
@@ -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);
}
@@ -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;
}
@@ -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;
}
@@ -31,6 +31,7 @@ public class PlateDetail {
// 板件所属信息
private String roomsName; //房间名称
private String roomNo; // 房间号
private String bodyName; //柜体名
private String bodyNo; // 柜体号
// 柜体 长 宽 深
@@ -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++) {