From 6ef02b9d71b3f6af9bec3355c1f06f3782f1a142 Mon Sep 17 00:00:00 2001
From: guoyuji <guoyujie@ng.com>
Date: 星期三, 19 六月 2024 15:46:34 +0800
Subject: [PATCH] 加工单打印和导出功能
---
north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java | 126 ++++++++++++++++++++++++++++++++++++++---
1 files changed, 115 insertions(+), 11 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 4b263ee..181cfc4 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
@@ -9,12 +9,12 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.example.erp.common.Constants;
+import com.example.erp.dto.sd.OrderDTO;
import com.example.erp.entity.sd.*;
import com.example.erp.entity.userInfo.SysError;
import com.example.erp.exception.ServiceException;
import com.example.erp.mapper.sd.*;
import com.example.erp.service.userInfo.SysErrorService;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
@@ -48,6 +48,7 @@
Order order = JSONObject.parseObject(JSONObject.toJSONString(orderJson.get("title")), Order.class);
List<OrderDetail> OrderDetails = JSONArray.parseArray(JSONObject.toJSONString(orderJson.get("detail")), OrderDetail.class);
List<OrderOtherMoney> orderOtherMoneyList = JSONArray.parseArray(JSONObject.toJSONString(orderJson.get("otherMoney")), OrderOtherMoney.class);
+
boolean saveState = true;
//璁剧疆鍥炴粴鐐�
Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
@@ -100,6 +101,7 @@
//鍒犻櫎鍏朵粬閲戦鏄庣粏琛�
orderOtherMoneyMapper.delete(new LambdaQueryWrapper<OrderOtherMoney>().eq(OrderOtherMoney::getOrderId, order.getOrderId()));
+
//鍒犻櫎璁㈠崟宸ヨ壓琛�
// orderProcessDetailMapper.delete(new LambdaQueryWrapper<OrderProcessDetail>().eq(OrderProcessDetail::getOrderId, order.getOrderId()));
insertOtherDetail(order.getOrderId(),OrderDetails,orderOtherMoneyList);
@@ -108,6 +110,7 @@
//鎻掑叆鍏朵粬鍓〃鏁版嵁锛岃鍏朵粬鏂规硶寮曠敤
public void insertOtherDetail(String orderId,List<OrderDetail> OrderDetails,List<OrderOtherMoney> orderOtherMoneyList) {
+
//鍏堟妸鍏朵粬閲戦鍓〃鐨勯噾棰濅笌鏁伴噺缃�0
orderOtherMoneyList.forEach(orderOtherMoney -> {
orderOtherMoney.setQuantity(0.0);
@@ -119,16 +122,26 @@
OrderDetails.get(i).setOrderId(orderId);
OrderDetails.get(i).setPerimeter(OrderDetails.get(i).getWidth()*OrderDetails.get(i).getHeight()*2/1000);
OrderDetails.get(i).setWeight(1.0);
- Map<String,Double> otherColumns = JSON.parseObject(OrderDetails.get(i).getOtherColumns(), new TypeReference<Map<String, Double>>(){});
- int finalI = i;
+ if(OrderDetails.get(i).getBendRadius()!=null && OrderDetails.get(i).getBendRadius()!=0){
+ //鑾峰彇寮挗寮у害
+ Double bendRadius = OrderDetails.get(i).getBendRadius();
+ //鑾峰彇瀹�
+ Double width = OrderDetails.get(i).getWidth();
+ //鑾峰彇鎷遍珮
+ String archRiseS = String.format("%.1f",bendRadius-(bendRadius*Math.cos(width/2/bendRadius)));
+ Double archRise = Double.parseDouble(archRiseS);
+ OrderDetails.get(i).setArchRise(archRise);
+ }
+ Map<String,Object> otherColumns = JSON.parseObject(OrderDetails.get(i).getOtherColumns(), new TypeReference<Map<String, Object>>(){});
+ int finalI = i;
if(otherColumns!=null){
otherColumns.forEach((key, value) ->{
- if(value!=null) {
+ if(value!=null && key.contains("M")) {
orderOtherMoneyList.forEach(orderOtherMoney -> {
if (orderOtherMoney.getColumn().equals(key)) {
- orderOtherMoney.setQuantity(orderOtherMoney.getQuantity()+(value * OrderDetails.get(finalI).getQuantity()));
+ orderOtherMoney.setQuantity(orderOtherMoney.getQuantity()+(Double.parseDouble((String) value) * OrderDetails.get(finalI).getQuantity()));
}
});
}
@@ -222,12 +235,12 @@
return map;
}
//璁㈠崟瀹℃牳
- public boolean reviewOrderById(String id,Integer status) {
+ public boolean reviewOrderById(String id, Integer status, String userId, String userName) {
Order order = orderMapper.selectOne(new QueryWrapper<Order>().eq("order_id",id));
if(order.getProcessReview()!=2){
throw new ServiceException(Constants.Code_600,"璇ヨ鍗曡繕鏈鏍�");
}
- return orderMapper.reviewOrderById(id,status);
+ return orderMapper.reviewOrderById(id,status,userId,userName);
}
//宸ヨ壓瀹℃牳鐣岄潰瀹℃牳鏇存柊鏁版嵁
public boolean reviewProcessById(String id, Integer status,List<OrderGlassDetail> orderGlassDetails) {
@@ -303,7 +316,7 @@
Map<String,Object> map = new HashMap<>();
map.put("data",orderDetailMapper.getOrderReport(offset, pageSize, startDate, endDate, orderDetail));
- map.put("total",orderDetailMapper.getOrderReportTotal(offset, pageSize, startDate, endDate, orderDetail));
+ map.put("total",orderDetailMapper.getOrderReportTotal(offset, pageSize, startDate, endDate, orderDetail,"order"));
List<String> list = new ArrayList<>();
list.add(startDate);
list.add(endDate);
@@ -312,8 +325,8 @@
return map;
}
- public List<Order> exportOrderReport() {
- return orderDetailMapper.exportOrderReport();
+ public List<OrderDTO> exportOrderReport(List<LocalDate> dates) {
+ return orderDetailMapper.exportOrderReport(dates);
}
public Map<String,Object> getOrderProductSummary(Integer pageNum, Integer pageSize, List<String> selectDate, OrderDetail orderDetail) {
@@ -331,7 +344,7 @@
Map<String,Object> map = new HashMap<>();
map.put("data",orderDetailMapper.getOrderProductSummary(offset, pageSize, startDate, endDate, orderDetail));
- map.put("total",orderDetailMapper.getOrderReportTotal(offset, pageSize, startDate, endDate, orderDetail));
+ map.put("total",orderDetailMapper.getOrderProductSummaryTotal(offset, pageSize, startDate, endDate, orderDetail, "product"));
List<String> list = new ArrayList<>();
list.add(startDate);
list.add(endDate);
@@ -339,4 +352,95 @@
// map.put("total",orderMapper.getPageTotal(offset, pageSize, startDate, endDate, orderDetail));
return map;
}
+
+ public List<OrderDTO> exportOrderProductSummary(List<LocalDate> dates) {
+ return orderDetailMapper.exportOrderProductSummary(dates);
+ }
+
+ public Map<String,String> getOrderProductDetailTag(String orderId) {
+ return orderDetailMapper.getOrderProductDetailTag(orderId);
+ }
+
+ public List<OrderDetail> getOrderDetailById(String id) {
+ return orderDetailMapper.selectList(new QueryWrapper<OrderDetail>().eq("order_id",id));
+ }
+
+ public List<OrderGlassDetail> getOrderCraftDetailById(String id) {
+ return orderGlassDetailMapper.selectOrderGlassDetailByOrderId(id);
+ }
+
+ public Object printOrderProductDetail(String orderId) {
+ List<Map<String,Object>> orderProductDistinct = orderDetailMapper.getOrderProductDistinctById(orderId);
+
+ List<Map<String,Object>> orderProductDetail = new ArrayList<>();
+ orderProductDistinct.forEach(map->{
+ Map<String,Object> orderProductDetailMap = new HashMap<>();
+ orderProductDetailMap.put("productId",map.get("productId"));
+ orderProductDetailMap.put("productName",map.get("productName"));
+ List<OrderDetail> orderDetails = orderDetailMapper.getOrderProductByProductId(map.get("productId"),orderId);
+ orderDetails.forEach(orderDetail->{
+
+ orderDetail.setGrossArea(
+ Double.parseDouble(String.format("%.3f",Double.parseDouble(
+ String.format("%.3f",
+ orderDetail.getWidth()*orderDetail.getHeight()/1000000)
+ ) * orderDetail.getQuantity()))
+ );
+ });
+
+ orderProductDetailMap.put("productDetail",orderDetails);
+ orderProductDetail.add(orderProductDetailMap);
+ });
+
+ Map<String,Object> returns = new HashMap<>();
+
+ returns.put("orderProductDetail",orderProductDetail);
+ returns.put("order",orderMapper.selectOne(new QueryWrapper<Order>().eq("order_id",orderId)));
+ return returns;
+ }
+
+ public Object printOrderProductGlassDetail(String orderId) {
+ Map<String,Object> returns = new HashMap<>();
+ returns.put("order",orderMapper.selectOne(new QueryWrapper<Order>().eq("order_id",orderId)));
+
+ List<Map<String,Object>> orderProductDistinct = orderDetailMapper.getOrderProductDistinctById(orderId);
+ List<Map<String,Object>> orderProductDetail = new ArrayList<>();
+ orderProductDistinct.forEach(map->{
+ Map<String,Object> orderProductDetailMap = new HashMap<>();
+ orderProductDetailMap.put("productId",map.get("productId"));
+ orderProductDetailMap.put("productName",map.get("productName"));
+ List<OrderDetail> orderDetails = orderDetailMapper.getOrderProductByProductId(map.get("productId"),orderId);
+ orderDetails.forEach(orderDetail->{
+ orderDetail.setGrossArea(
+ Double.parseDouble(String.format("%.3f",Double.parseDouble(
+ String.format("%.3f",
+ orderDetail.getWidth()*orderDetail.getHeight()/1000000)
+ ) * orderDetail.getQuantity()))
+ );
+
+ List<OrderGlassDetail> orderGlassDetails =
+ orderGlassDetailMapper.selectList(
+ new QueryWrapper<OrderGlassDetail>().
+ eq("order_id",orderId).
+ eq("order_number",orderDetail.getOrderNumber())
+ );
+ orderDetail.setOrderGlassDetails(orderGlassDetails);
+ });
+
+ orderProductDetailMap.put("productDetail",orderDetails);
+ orderProductDetail.add(orderProductDetailMap);
+ });
+ returns.put("orderDetail",orderProductDetail);
+
+
+
+
+
+
+
+ return returns;
+
+
+
+ }
}
--
Gitblit v1.8.0