From f7ca9752b8cc4d81d75a23bbcd89227a2e3abe69 Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期三, 24 十二月 2025 07:59:18 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10105/r/ERP_override
---
north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java | 168 ++++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 121 insertions(+), 47 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 8671a1e..0138fbf 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,7 +9,9 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.example.erp.common.Constants;
+import com.example.erp.common.Result;
import com.example.erp.dto.sd.OrderDTO;
import com.example.erp.dto.sd.OrderSearchDTO;
import com.example.erp.entity.sd.*;
@@ -29,6 +31,7 @@
import java.math.BigDecimal;
import java.math.RoundingMode;
+import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.*;
@@ -48,8 +51,10 @@
private final WorkOrderMapper workOrderMapper;
private final FlowCardMapper flowCardMapper;
+ private final BasicOtherMoneyMapper basicOtherMoneyMapper;
+
private final OrderProcessDetailMapper orderProcessDetailMapper;
- public OrderService(OrderMapper orderMapper, OrderDetailMapper orderDetailMapper, OrderGlassDetailMapper orderGlassDetailMapper, OrderProcessDetailMapper orderProcessDetailMapper, SysErrorService sysErrorService, OrderOtherMoneyMapper orderOtherMoneyMapper, ProductMapper productMapper, LogService logService, WorkOrderMapper workOrderMapper, FlowCardMapper flowCardMapper) {
+ public OrderService(OrderMapper orderMapper, OrderDetailMapper orderDetailMapper, OrderGlassDetailMapper orderGlassDetailMapper, OrderProcessDetailMapper orderProcessDetailMapper, SysErrorService sysErrorService, OrderOtherMoneyMapper orderOtherMoneyMapper, ProductMapper productMapper, LogService logService, WorkOrderMapper workOrderMapper, FlowCardMapper flowCardMapper, BasicOtherMoneyMapper basicOtherMoneyMapper) {
this.orderMapper = orderMapper;
this.orderDetailMapper = orderDetailMapper;
this.orderGlassDetailMapper = orderGlassDetailMapper;
@@ -60,11 +65,14 @@
this.logService = logService;
this.workOrderMapper = workOrderMapper;
this.flowCardMapper = flowCardMapper;
+ this.basicOtherMoneyMapper = basicOtherMoneyMapper;
}
public boolean saveOrder(Map<String,Object> orderMap) throws Exception {
JSONObject orderJson = new JSONObject(orderMap);
String orderIdType = orderJson.getString("orderIdType");
+ String orderIdTypeLetter = orderJson.getString("orderIdTypeLetter");
+ Integer orderIdTypeMantissa = orderJson.getInteger("orderIdTypeMantissa");
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);
@@ -83,13 +91,17 @@
log.setContent(orderMap.toString());
if(order.getOrderId() == null || order.getOrderId().isEmpty()){
- insertOrder(order,OrderDetails,orderOtherMoneyList,orderIdType);
+ insertOrder(order,
+ OrderDetails,orderOtherMoneyList,orderIdType,
+ (Map<String, String>) orderMap.get("position"),
+ orderIdTypeLetter,
+ orderIdTypeMantissa
+ );
log.setFunction("saveOrder鍒涘缓:"+order.getOrderId());
}else {
- updateOrder(order,OrderDetails,orderOtherMoneyList);
+ updateOrder(order,OrderDetails,orderOtherMoneyList,(Map<String, String>) orderMap.get("position"));
log.setFunction("saveOrder淇敼:"+order.getOrderId());
}
-
logService.saveLog(log);
}catch (Exception e){
TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
@@ -99,7 +111,6 @@
sysError.setFunc("saveOrder");
sysErrorService.insert(sysError);
saveState = false;
-
//throw new Exception();
}
return saveState;
@@ -108,7 +119,6 @@
public boolean saveOrderTitle(Map<String,Object> orderMap) throws Exception {
JSONObject orderJson = new JSONObject(orderMap);
Order order = JSONObject.parseObject(JSONObject.toJSONString(orderJson.get("title")), Order.class);
-
boolean saveState = true;
//璁剧疆鍥炴粴鐐�
Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
@@ -147,7 +157,6 @@
sysError.setFunc("saveOrder");
sysErrorService.insert(sysError);
saveState = false;
-
//throw new Exception();
}
return saveState;
@@ -167,51 +176,51 @@
return map;
}
//鐢熸垚璁㈠崟鏁版嵁
- public void insertOrder(Order order, List<OrderDetail> OrderDetails, List<OrderOtherMoney> orderOtherMoneyList, String orderIdType) {
+ public void insertOrder(Order order, List<OrderDetail> OrderDetails, List<OrderOtherMoney> orderOtherMoneyList, String orderIdType, Map<String,String> position, String orderIdTypeLetter, Integer orderIdTypeMantissa) {
//鏍规嵁浼犲叆鐨勫綋鍓嶆湀浠芥垨鑰呭綋澶╃敓鎴愯鍗昳d
- String orderId = getOrderId(orderIdType);
+ String orderId = getOrderId(orderIdType,orderIdTypeLetter,orderIdTypeMantissa);
//寰�涓昏〃鎻掓暟鎹�
order.setOrderId(orderId);
order.setCreateOrder(2);
orderMapper.insert(order);
-
- insertOtherDetail(orderId,OrderDetails,orderOtherMoneyList);
+ insertOtherDetail(orderId,OrderDetails,orderOtherMoneyList,position);
}
- private String getOrderId(String dateType){
+ private String getOrderId(String dateType, String orderIdTypeLetter, Integer orderIdTypeMantissa){
String orderId = null;
+ Integer orderIdTypeLetterLen = orderIdTypeLetter.length();
+ Integer count = orderIdTypeLetterLen+orderIdTypeMantissa;
if(dateType==null || dateType.equals("day")){
Integer maxOrderId = orderMapper.selectMaxOrderId();
//鏌ヨ璁㈠崟id锛屽苟涓旇嚜澧�
- String formattedNumber = String.format("%02d", maxOrderId+1);
+ String formattedNumber = String.format("%0"+orderIdTypeMantissa+"d", maxOrderId+1);
//鏍煎紡鍖栧綋鍓嶆棩鏈�
Date currentDate = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyMMdd");
String formattedDate = dateFormat.format(currentDate);
- orderId = "NG"+formattedDate+formattedNumber;
+ orderId = orderIdTypeLetter+formattedDate+formattedNumber;
}else if(dateType.equals("month")){
Integer maxOrderId = orderMapper.selectMaxOrderIdByMonth();
- String formattedNumber = String.format("%04d", maxOrderId+1);
+ String formattedNumber = String.format("%0"+(orderIdTypeMantissa+2)+"d", maxOrderId+1);
Date currentDate = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyMM");
String formattedDate = dateFormat.format(currentDate);
- orderId = "NG"+formattedDate+formattedNumber;
+ orderId = orderIdTypeLetter+formattedDate+formattedNumber;
}else if(dateType.equals("year")){
Integer maxOrderId = orderMapper.selectMaxOrderIdByYear();
- String formattedNumber = String.format("%06d", maxOrderId+1);
+ String formattedNumber = String.format("%0"+(orderIdTypeMantissa+4)+"d", maxOrderId+1);
Date currentDate = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yy");
String formattedDate = dateFormat.format(currentDate);
- orderId = "NG"+formattedDate+formattedNumber;
+ orderId = orderIdTypeLetter+formattedDate+formattedNumber;
}
-
return orderId;
}
//淇敼璁㈠崟鏁版嵁锛屽苟涓旈噸鏂扮敓鎴愬涓壇琛ㄦ暟鎹�
- public void updateOrder(Order order,List<OrderDetail> OrderDetails,List<OrderOtherMoney> orderOtherMoneyList) throws Exception {
+ public void updateOrder(Order order, List<OrderDetail> OrderDetails, List<OrderOtherMoney> orderOtherMoneyList, Map<String, String> position) throws Exception {
Order oldOrder = orderMapper.selectOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderId,order.getOrderId()));
if(oldOrder.getProcessReview()==2){
throw new ServiceException(Constants.Code_600,"璇ヨ鍗曞凡缁忓鏍革紝鏃犳硶淇敼");
@@ -236,13 +245,13 @@
orderDetailMapper.deleteOrderFile(order.getOrderId());
- insertOtherDetail(order.getOrderId(),OrderDetails,orderOtherMoneyList);
+ insertOtherDetail(order.getOrderId(),OrderDetails,orderOtherMoneyList, position);
}
//鎻掑叆鍏朵粬鍓〃鏁版嵁锛岃鍏朵粬鏂规硶寮曠敤
- public void insertOtherDetail(String orderId,List<OrderDetail> OrderDetails,List<OrderOtherMoney> orderOtherMoneyList) {
+ public void insertOtherDetail(String orderId, List<OrderDetail> OrderDetails, List<OrderOtherMoney> orderOtherMoneyList, Map<String, String> position) {
//鍏堟妸鍏朵粬閲戦鍓〃鐨勯噾棰濅笌鏁伴噺缃�0
if(orderOtherMoneyList!=null){
orderOtherMoneyList.forEach(orderOtherMoney -> {
@@ -276,7 +285,6 @@
if(otherColumns!=null){
otherColumns.values().removeIf(value -> value == null || value.equals(""));
OrderDetails.get(i).setOtherColumns(JSON.toJSONString(otherColumns));
-
otherColumns.forEach((key, value) ->{
if(value!=null && !value.equals("") && key.contains("M")) {
@@ -292,25 +300,19 @@
}else{
OrderDetails.get(i).setOtherColumns("{}");
}
-
if(OrderDetails.get(i).getFileName()!=null&&!OrderDetails.get(i).getFileName().trim().isEmpty()){
orderMapper.saveOrderFile(OrderDetails.get(i).getFileName(), OrderDetails.get(i).getFileData(),orderId,OrderDetails.get(i).getOrderNumber(),OrderDetails.get(i).getFileJson());
}
-
if(OrderDetails.get(i).getShape()==null){
OrderDetails.get(i).setShape("1");
}
}
-
-
-
//寰�鏄庣粏琛ㄦ彃鏁版嵁
orderDetailMapper.insertBatch(OrderDetails);
//寰�灏忕墖琛ㄤ紶鍏ヤ骇鍝佹暟鎹�
- orderGlassDetailMapper.insertOrderGlassDetail(orderId);
-
+ orderGlassDetailMapper.insertOrderGlassDetail(orderId,position.get("outside"),position.get("inside"));
//淇敼鎴愬搧鎷遍珮
List<OrderDetail> orderDetails = orderDetailMapper
.selectList(new LambdaQueryWrapper<OrderDetail>()
@@ -371,8 +373,6 @@
//淇敼璁㈠崟涓昏〃闈㈢Н涓庡懆闀夸互鍙婇噸閲�
orderMapper.updateOrderParameter(orderId);
-
-
}
public static List<OrderProcessDetail> getOrderProcessDetails(List<OrderGlassDetail> orderGlassDetails) {
@@ -434,8 +434,6 @@
List<OrderDetail> orderDetails = orderDetailMapper.selectList(new QueryWrapper<OrderDetail>().eq("order_id",id));
List<OrderOtherMoney> orderOtherMoneyList = orderOtherMoneyMapper.findById(id);
List<Map<String,String>> orderFileList = orderMapper.selectOrderFileList(id);
-
-
Map<String,Object> map = new HashMap<>();
map.put("order",order);
map.put("orderDetails",orderDetails);
@@ -602,7 +600,7 @@
public Map<String,Object> getOrderReport(Integer pageNum, Integer pageSize, List<String> selectDate, OrderDetail orderDetail, Integer model, Integer scope) {
Integer offset = (pageNum-1)*pageSize;
String endDate = LocalDate.now().toString();
- String startDate = LocalDate.now().minusDays(15).toString();
+ String startDate = LocalDate.now().minusDays(30).toString();
if(selectDate !=null && selectDate.size()==2){
if(!selectDate.get(0).isEmpty()){
startDate = selectDate.get(0);
@@ -611,8 +609,28 @@
endDate = selectDate.get(1);
}
}
+ List<OrderDetail> orderDetailList = orderDetailMapper.getOrderReport(offset, pageSize, startDate, endDate, orderDetail,model,scope);
+ List<BasicOtherMoney> basicOtherMoneyList=basicOtherMoneyMapper.selectList(new QueryWrapper<BasicOtherMoney>());
+ ObjectMapper objectMapper = new ObjectMapper();
+
+ for (OrderDetail detail : orderDetailList) {
+ String otherColumnsStr = detail.getOtherColumns();
+ if (otherColumnsStr == null || otherColumnsStr.trim().isEmpty()||otherColumnsStr.equals("{}")) {
+ continue; // 璺宠繃绌哄��
+ }
+ try {
+ // 瑙f瀽涓篗ap锛堜篃鍙В鏋愪负鑷畾涔夊疄浣撶被锛屽OtherColumnsDTO锛�
+ Map<String, Object> otherColumnsJson = objectMapper.readValue(otherColumnsStr, Map.class);
+
+ detail.setOtherColumnsJson(otherColumnsJson);
+ } catch (JsonProcessingException e) {
+ System.err.println("瑙f瀽otherColumns澶辫触锛屾暟鎹細" + otherColumnsStr + "锛岄敊璇細" + e.getMessage());
+ }
+ }
+
Map<String,Object> map = new HashMap<>();
- map.put("data",orderDetailMapper.getOrderReport(offset, pageSize, startDate, endDate, orderDetail,model,scope));
+ map.put("data",orderDetailList);
+ map.put("title",basicOtherMoneyList);
map.put("total",orderDetailMapper.getOrderReportTotal(offset, pageSize, startDate, endDate, orderDetail,"order"));
List<String> list = new ArrayList<>();
list.add(startDate);
@@ -629,7 +647,7 @@
public Map<String,Object> getOrderSummaryReport(Integer pageNum, Integer pageSize, List<String> selectDate, Order order) {
Integer offset = (pageNum-1)*pageSize;
String endDate = LocalDate.now().toString();
- String startDate = LocalDate.now().minusDays(15).toString();
+ String startDate = LocalDate.now().minusDays(30).toString();
if(selectDate !=null && selectDate.size()==2){
if(!selectDate.get(0).isEmpty()){
startDate = selectDate.get(0);
@@ -657,7 +675,7 @@
public Map<String,Object> getOrderProductSummary(Integer pageNum, Integer pageSize, List<String> selectDate, OrderDetail orderDetail) {
Integer offset = (pageNum-1)*pageSize;
String endDate = LocalDate.now().toString();
- String startDate = LocalDate.now().minusDays(15).toString();
+ String startDate = LocalDate.now().minusDays(30).toString();
if(selectDate !=null && selectDate.size()==2){
if(!selectDate.get(0).isEmpty()){
startDate = selectDate.get(0);
@@ -852,16 +870,7 @@
});
returns.put("orderDetail",orderProductDetail);
-
-
-
-
-
-
return returns;
-
-
-
}
public boolean updateOrderPrintNumber(String orderId) {
@@ -1049,4 +1058,69 @@
}
return true;
}
+
+ public Map<String,Object> appGetOrderList(List<String> dates) {
+ //璁剧疆褰撳墠鏃堕棿
+ String endDate = LocalDate.now().toString();
+ String startDate = LocalDate.now().minusDays(30).toString();
+ if(dates !=null && dates.size()==2){
+ if(dates.get(0) != null){
+ startDate = String.valueOf(dates.get(0));
+ }
+ if(dates.get(1) != null){
+ endDate = String.valueOf(dates.get(1));
+ }
+ }
+ List<String> date = new ArrayList<>();
+ date.add(startDate);
+ date.add(endDate);
+
+ List<Order> list = orderMapper.selectList(new LambdaQueryWrapper<Order>()
+ .apply("create_order > 0")
+ .apply("date(create_time) between {0} and {1}",startDate, endDate)
+ .orderByDesc(Order::getOrderId)
+ );
+ Integer quantity = 0;
+ Double area = 0.00;
+ Double perimeter = 0.00;
+ for(Order order:list){
+ quantity += Integer.parseInt(String.valueOf(order.getQuantity()));
+ area += Double.parseDouble(String.valueOf(order.getArea()));
+ perimeter += order.getPerimeter();
+ }
+ Map<String, Object> totalSum = new HashMap<>();
+ DecimalFormat df = new DecimalFormat("#.00");
+ totalSum.put("quantity",quantity);
+ totalSum.put("area", df.format(area));
+ totalSum.put("perimeter", df.format(perimeter));
+ totalSum.put("count", list.size());
+
+
+ Map<String,Object> map = new HashMap<>();
+ map.put("data",list);
+ map.put("date",date);
+ map.put("totalSum",totalSum);
+
+ return map;
+ }
+
+
+ //宸ヨ壓灞炴�ч厤缃煡璇�
+ public Map<String,Object> processAttributeConfig() {
+ Map<String,Object> map = new HashMap<>();
+ List<Map<String,Object>> processList = orderMapper.selectProcessAttributeConfigOne();
+ for (Map<String,Object> objectMap:processList){
+ objectMap.put("detail",orderMapper.selectProcessAttributeConfigTow(objectMap.get("input_type").toString()));
+ }
+ map.put("data",processList);
+ return map;
+ }
+
+ public Result sizeCheck(String orderId) {
+
+ return Result.success(
+ orderMapper.update(null,
+ new UpdateWrapper<Order>().set("size_check",1).eq("order_id",orderId))
+ );
+ }
}
--
Gitblit v1.8.0