|
...
|
...
|
@@ -16,6 +16,10 @@ import com.lframework.xingyun.sc.utils.CommonUtil; |
|
16
|
16
|
import com.lframework.xingyun.sc.vo.statistics.orderDetail.QueryOrderDetailReportVo;
|
|
17
|
17
|
import com.lframework.xingyun.sc.vo.statistics.shipmentDetail.QueryShipmentDetailStatisticsVo;
|
|
18
|
18
|
|
|
|
19
|
+import java.math.BigDecimal;
|
|
|
20
|
+import java.time.LocalDate;
|
|
|
21
|
+import java.time.ZoneId;
|
|
|
22
|
+import java.util.Date;
|
|
19
|
23
|
import java.util.List;
|
|
20
|
24
|
import java.util.stream.Collectors;
|
|
21
|
25
|
|
|
...
|
...
|
@@ -53,10 +57,45 @@ public class OrderDetailReportExportTaskWorker implements |
|
53
|
57
|
data.getLengthTolPos() != null ? data.getLengthTolPos().doubleValue() : null,
|
|
54
|
58
|
data.getLengthTolNeg() != null ? data.getLengthTolNeg().doubleValue() : null);
|
|
55
|
59
|
|
|
56
|
|
- OrderDetailStatisticsModel model = JsonUtil.parseObject(JsonUtil.toJsonString(data), OrderDetailStatisticsModel.class);
|
|
|
60
|
+ OrderDetailStatisticsModel model = new OrderDetailStatisticsModel();
|
|
|
61
|
+ model.setOrderNo(data.getOrderNo());
|
|
|
62
|
+ model.setOrderDate1(toDate(data.getOrderDate()));
|
|
|
63
|
+ model.setOrderDate(toDate(data.getOrderDate()));
|
|
|
64
|
+ model.setWorkshopName(data.getWorkshopName());
|
|
|
65
|
+ model.setDeptName(data.getDeptName());
|
|
|
66
|
+ model.setRegionName(data.getRegionName());
|
|
|
67
|
+ model.setOrderingUnitName(data.getOrderingUnitName());
|
|
|
68
|
+ model.setIndustry(data.getIndustry());
|
|
|
69
|
+ model.setBrand(data.getBrand());
|
|
|
70
|
+ model.setThickness(data.getThickness());
|
|
|
71
|
+ model.setWidth(data.getWidth());
|
|
|
72
|
+ model.setLength(data.getLength());
|
|
|
73
|
+ model.setStatus(data.getStatus());
|
|
|
74
|
+ model.setQuantity(data.getQuantity());
|
|
|
75
|
+ model.setDeliveryDate(toDate(data.getDeliveryDate()));
|
|
57
|
76
|
model.setThicknessTol(thicknessTol);
|
|
58
|
77
|
model.setWidthTol(widthTol);
|
|
59
|
78
|
model.setLengthTol(lengthTol);
|
|
|
79
|
+ model.setSuggestedPrice(stringToBigDecimal(data.getSuggestedPrice()));
|
|
|
80
|
+ model.setAssessmentExceedsAgreement(stringToBigDecimal(data.getAssessmentExceedsAgreement()));
|
|
|
81
|
+ model.setSalesPrice(stringToBigDecimal(data.getSalesPrice()));
|
|
|
82
|
+ model.setPriceListNo(data.getPriceListNo());
|
|
|
83
|
+ model.setPackagingFee(stringToBigDecimal(data.getPackagingFee()));
|
|
|
84
|
+ model.setInvoicingStatus(data.getInvoicingStatus());
|
|
|
85
|
+ model.setPieceWeightHeader(data.getPieceWeightHeader());
|
|
|
86
|
+ model.setSurface(data.getSurface());
|
|
|
87
|
+ model.setTolerance(data.getTolerance());
|
|
|
88
|
+ model.setPerformance(data.getPerformance());
|
|
|
89
|
+ model.setPackaging(data.getPackaging());
|
|
|
90
|
+ model.setSpecialRequirements(data.getSpecialRequirements());
|
|
|
91
|
+ model.setRemarks(data.getRemarks());
|
|
|
92
|
+ model.setShippingCost(stringToBigDecimal(data.getShippingCost()));
|
|
|
93
|
+ model.setReturnShippingCost(stringToBigDecimal(data.getReturnShippingCost()));
|
|
|
94
|
+ model.setCustomerType(data.getCustomerType());
|
|
|
95
|
+ model.setQuality(data.getQuality());
|
|
|
96
|
+ model.setContractType(data.getContractType());
|
|
|
97
|
+ model.setStockUpCompanyName(data.getStockUpCompanyName());
|
|
|
98
|
+ model.setOrderType(data.getOrderType());
|
|
60
|
99
|
return model;
|
|
61
|
100
|
}
|
|
62
|
101
|
|
|
...
|
...
|
@@ -64,4 +103,27 @@ public class OrderDetailReportExportTaskWorker implements |
|
64
|
103
|
public Class<OrderDetailStatisticsModel> getModelClass() {
|
|
65
|
104
|
return OrderDetailStatisticsModel.class;
|
|
66
|
105
|
}
|
|
|
106
|
+
|
|
|
107
|
+ private static Date toDate(LocalDate date) {
|
|
|
108
|
+ if (date == null) {
|
|
|
109
|
+ return null;
|
|
|
110
|
+ }
|
|
|
111
|
+ return Date.from(date.atStartOfDay(ZoneId.systemDefault()).toInstant());
|
|
|
112
|
+ }
|
|
|
113
|
+
|
|
|
114
|
+ public static BigDecimal stringToBigDecimal(String str) {
|
|
|
115
|
+ // 1. 判空处理:如果为 null 或去除空格后为空字符串,直接返回 null
|
|
|
116
|
+ if (str == null || str.trim().isEmpty()) {
|
|
|
117
|
+ return null;
|
|
|
118
|
+ }
|
|
|
119
|
+
|
|
|
120
|
+ // 2. 尝试转换
|
|
|
121
|
+ try {
|
|
|
122
|
+ // 建议先 trim() 去除首尾空格,避免 " 100 " 这种格式报错
|
|
|
123
|
+ return new BigDecimal(str.trim());
|
|
|
124
|
+ } catch (NumberFormatException e) {
|
|
|
125
|
+ // 3. 如果字符串格式不合法(如 "abc"),根据业务需求处理,这里同样返回 null
|
|
|
126
|
+ return null;
|
|
|
127
|
+ }
|
|
|
128
|
+ }
|
|
67
|
129
|
} |
...
|
...
|
|