From 28c2126249a35ded0b816a07d80c015caa45a4f3 Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期二, 11 二月 2025 09:40:27 +0800
Subject: [PATCH] Merge branch 'master' of http://bore.pub:10439/r/ERP_override
---
north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java | 121 +++++++++++++++++++++++++++++++--------
1 files changed, 95 insertions(+), 26 deletions(-)
diff --git a/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java b/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java
index d919d2f..18b58f6 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java
@@ -31,6 +31,8 @@
import java.util.*;
import java.util.stream.Collectors;
+import static org.apache.coyote.http11.Constants.a;
+
@Service
@DS("sd")
@Transactional(rollbackFor = Exception.class)
@@ -113,6 +115,9 @@
log.setContent(orderMap.toString());
log.setFunction("saveOrderTitle淇濆瓨琛ㄥご:"+order.getOrderId());
+ Order order1 = orderMapper.selectOrderId(order.getOrderId());
+ order.setCalculateType(order1.getCalculateType());
+
LambdaUpdateWrapper<Order> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(Order::getOrderId, order.getOrderId());
order.setCreateTime(null);
@@ -162,7 +167,7 @@
private String getOrderId(String dateType){
String orderId = null;
- if(dateType.equals("day")){
+ if(dateType==null || dateType.equals("day")){
Integer maxOrderId = orderMapper.selectMaxOrderId();
//鏌ヨ璁㈠崟id锛屽苟涓旇嚜澧�
String formattedNumber = String.format("%02d", maxOrderId+1);
@@ -217,15 +222,19 @@
//鎻掑叆鍏朵粬鍓〃鏁版嵁锛岃鍏朵粬鏂规硶寮曠敤
public void insertOtherDetail(String orderId,List<OrderDetail> OrderDetails,List<OrderOtherMoney> orderOtherMoneyList) {
//鍏堟妸鍏朵粬閲戦鍓〃鐨勯噾棰濅笌鏁伴噺缃�0
- orderOtherMoneyList.forEach(orderOtherMoney -> {
- orderOtherMoney.setQuantity(0.0);
- });
+ if(orderOtherMoneyList!=null){
+ orderOtherMoneyList.forEach(orderOtherMoney -> {
+ orderOtherMoney.setQuantity(0.0);
+ });
+ }
+
//寰幆缁欒鍗曟槑缁嗚〃瀛楁娣诲姞搴忓彿鍜屽懆闀�
for (int i = 0; i < OrderDetails.size(); i++) {
OrderDetails.get(i).setOrderNumber(i+1);
OrderDetails.get(i).setOrderId(orderId);
OrderDetails.get(i).setPerimeter(Double.valueOf(String.format("%.3f",(OrderDetails.get(i).getWidth()+OrderDetails.get(i).getHeight())*2/1000*OrderDetails.get(i).getQuantity())));
+ OrderDetails.get(i).setMonolithicPerimeter(Double.valueOf(String.format("%.3f",(OrderDetails.get(i).getWidth()+OrderDetails.get(i).getHeight())*2/1000)));
Product product = productMapper.selectById(OrderDetails.get(i).getProductId());
OrderDetails.get(i).setWeight(Double.valueOf(String.format("%.2f",product.getThickness()*OrderDetails.get(i).getWidth()*OrderDetails.get(i).getHeight()/1000000*2.5)));
@@ -271,14 +280,21 @@
orderDetailMapper.insertBatch(OrderDetails);
//寰�灏忕墖琛ㄤ紶鍏ヤ骇鍝佹暟鎹�
orderGlassDetailMapper.insertOrderGlassDetail(orderId);
- orderOtherMoneyList.forEach(orderOtherMoney ->{
- orderOtherMoney.setId(null);
- orderOtherMoney.setOrderId(orderId);
- if(orderOtherMoney.getQuantity()!=null && orderOtherMoney.getPrice()!=null){
- orderOtherMoney.setMoney((orderOtherMoney.getQuantity()*orderOtherMoney.getPrice()));
- }
- orderOtherMoneyMapper.insert(orderOtherMoney);
- });
+ if(orderOtherMoneyList!=null){
+ orderOtherMoneyList.forEach(orderOtherMoney ->{
+ orderOtherMoney.setId(null);
+ orderOtherMoney.setOrderId(orderId);
+ if(orderOtherMoney.getQuantity()!=null && orderOtherMoney.getPrice()!=null){
+ BigDecimal getQuantity= BigDecimal.valueOf(orderOtherMoney.getQuantity());
+ BigDecimal getPrice= BigDecimal.valueOf(orderOtherMoney.getPrice());
+ orderOtherMoney.setMoney(getQuantity.multiply(getPrice).setScale(2, RoundingMode.HALF_UP).doubleValue());
+ }else {
+ orderOtherMoney.setMoney(0.0);
+ }
+ orderOtherMoneyMapper.insert(orderOtherMoney);
+ });
+ }
+
//淇敼璁㈠崟涓昏〃闈㈢Н涓庡懆闀夸互鍙婇噸閲�
orderMapper.updateOrderParameter(orderId);
@@ -302,7 +318,7 @@
}
//鏌ヨ鑾峰彇鍒楄〃
- public Map<String,Object> getOrderList(Integer pageNum, Integer pageSize, List<String> selectDate, Order order,Integer orderType) {
+ public Map<String,Object> getOrderList(Integer pageNum, Integer pageSize, List<String> selectDate, Map<String,Object> config,Integer orderType) {
Integer offset = (pageNum-1)*pageSize;
String endDate = LocalDate.now().toString();
String startDate = LocalDate.now().minusDays(15).toString();
@@ -314,9 +330,15 @@
endDate = selectDate.get(1);
}
}
+ JSONObject orderJson = new JSONObject(config);
+ Order order = JSONObject.parseObject(JSONObject.toJSONString(orderJson.get("filter")), Order.class);
+ Map<String,String> sortDate = (Map<String, String>) config.get("sort");
+ String field = sortDate.get("field").replaceAll("(?<!^)([A-Z])", "_$1").toLowerCase();
+ String orderBy = sortDate.get("order");
+ System.out.println(field+" "+orderBy);
Map<String,Object> map = new HashMap<>();
- map.put("data",orderMapper.getOrderList(offset, pageSize, startDate, endDate, order,orderType));
+ map.put("data",orderMapper.getOrderList(offset, pageSize, startDate, endDate, order,orderType, field, orderBy));
map.put("total",orderMapper.getPageTotal(offset, pageSize, startDate, endDate, order,orderType));
List<String> list = new ArrayList<>();
list.add(startDate);
@@ -391,26 +413,69 @@
Order order = JSONObject.parseObject(JSONObject.toJSONString(jsonObject.get("order")), Order.class);
List<OrderDetail> OrderDetails = JSONArray.parseArray(JSONObject.toJSONString(jsonObject.get("detail")), OrderDetail.class);
List<OrderOtherMoney> orderOtherMoneyList = JSONArray.parseArray(JSONObject.toJSONString(jsonObject.get("otherMoney")), OrderOtherMoney.class);
- double money = 0;
- for (OrderDetail orderDetail : OrderDetails) {
- orderDetail = updateOrderMoneyComputed(orderDetail,order.getCalculateType());
- BigDecimal getGrossAmount= BigDecimal.valueOf(orderDetail.getGrossAmount());
- money+=getGrossAmount.doubleValue();
+
+ if(orderOtherMoneyList != null ){
+ orderOtherMoneyList = orderOtherMoneyList.stream().filter(o -> o.getColumn().indexOf("M")==0).collect(Collectors.toList());
}
+ if(orderOtherMoneyList!=null){
+ orderOtherMoneyList.forEach(orderOtherMoney -> {
+ orderOtherMoney.setQuantity(0.0);
+ });
+ }
+
Log log = new Log();
log.setOperator(order.getCreator());
log.setOperatorId(order.getCreatorId());
log.setContent(jsonObject.toString());
log.setFunction("updateOrderMoney閲戦閲嶇疆:"+order.getOrderId());
- orderOtherMoneyList.forEach(orderOtherMoney -> {
- if(orderOtherMoney.getQuantity()!=null && orderOtherMoney.getPrice()!=null){
- orderOtherMoney.setMoney((orderOtherMoney.getQuantity()*orderOtherMoney.getPrice()));
+ //鍒犻櫎鍏朵粬閲戦鏄庣粏琛�
+ orderOtherMoneyMapper.delete(new LambdaQueryWrapper<OrderOtherMoney>().eq(OrderOtherMoney::getOrderId, order.getOrderId()));
+ List<OrderOtherMoney> orderOtherMoneyLists=orderOtherMoneyList;
+
+ double money = 0;
+ for (OrderDetail orderDetail : OrderDetails) {
+ orderDetail = updateOrderMoneyComputed(orderDetail,order.getCalculateType());
+ BigDecimal getGrossAmount= BigDecimal.valueOf(orderDetail.getGrossAmount());
+ money+=getGrossAmount.doubleValue();
+
+ Map<String,Object> otherColumns = JSON.parseObject(orderDetail.getOtherColumns(), new TypeReference<Map<String, Object>>(){});
+ if(otherColumns!=null){
+ otherColumns.values().removeIf(value -> value == null || value.equals(""));
+ orderDetail.setOtherColumns(JSON.toJSONString(otherColumns));
+
+ OrderDetail finalOrderDetail = orderDetail;
+ otherColumns.forEach((key, value) ->{
+
+ if(value!=null && !value.equals("") && key.contains("M")) {
+ orderOtherMoneyLists.forEach(orderOtherMoney -> {
+ if (orderOtherMoney.getColumn().equals(key)) {
+ orderOtherMoney.setQuantity(
+ orderOtherMoney.getQuantity()+(Double.parseDouble((String) value) * finalOrderDetail.getQuantity()));
+ }
+ });
+ }
+
+ });
+ }else{
+ orderDetail.setOtherColumns("{}");
}
- orderOtherMoneyMapper.update(orderOtherMoney,new QueryWrapper<OrderOtherMoney>()
- .eq("order_id",orderOtherMoney.getOrderId())
- .eq("`column`",orderOtherMoney.getColumn()));
- });
+
+ }
+
+ if(orderOtherMoneyLists!=null){
+ orderOtherMoneyLists.forEach(orderOtherMoney ->{
+ orderOtherMoney.setId(null);
+ orderOtherMoney.setOrderId(order.getOrderId());
+ if(orderOtherMoney.getQuantity()!=null && orderOtherMoney.getPrice()!=null){
+ orderOtherMoney.setMoney((orderOtherMoney.getQuantity()*orderOtherMoney.getPrice()));
+ }else {
+ orderOtherMoney.setMoney(0.0);
+ }
+ orderOtherMoneyMapper.insert(orderOtherMoney);
+ });
+ }
+
order.setMoney(money+orderOtherMoneyMapper.selectGrossAmount(order.getOrderId()));
order.setOtherMoney(orderOtherMoneyMapper.selectGrossAmount(order.getOrderId()));
orderMapper.updateMoney(order);
@@ -740,4 +805,8 @@
}
return saveState;
}
+
+ public Boolean selectDifferentSize(String orderId) {
+ return !orderMapper.selectDifferentSize(orderId).isEmpty();
+ }
}
--
Gitblit v1.8.0