From 8f878c56003027d0b7408c82b53d2abfc0f1df10 Mon Sep 17 00:00:00 2001
From: guoyujie <guoyujie@ng.com>
Date: 星期二, 09 十二月 2025 12:27:30 +0800
Subject: [PATCH] 提交按照配置文件错误问题
---
north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java | 195 +++++++++++++++++++++++++++++++-----------------
1 files changed, 126 insertions(+), 69 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 b4a90bf..0437ed0 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
@@ -21,12 +21,15 @@
import com.example.erp.mapper.sd.*;
import com.example.erp.service.userInfo.LogService;
import com.example.erp.service.userInfo.SysErrorService;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import java.math.BigDecimal;
import java.math.RoundingMode;
+import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.*;
@@ -63,6 +66,8 @@
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);
@@ -81,13 +86,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);
@@ -97,7 +106,6 @@
sysError.setFunc("saveOrder");
sysErrorService.insert(sysError);
saveState = false;
-
//throw new Exception();
}
return saveState;
@@ -106,7 +114,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();
@@ -145,7 +152,6 @@
sysError.setFunc("saveOrder");
sysErrorService.insert(sysError);
saveState = false;
-
//throw new Exception();
}
return saveState;
@@ -165,51 +171,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,"璇ヨ鍗曞凡缁忓鏍革紝鏃犳硶淇敼");
@@ -234,13 +240,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 -> {
@@ -274,7 +280,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")) {
@@ -290,21 +295,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());
+ 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>()
@@ -314,31 +317,36 @@
orderDetails.forEach(orderDetail -> {
//鑾峰彇鏈�灏忓姬搴�
- OrderGlassDetail orderGlassDetail = orderGlassDetailMapper
- .selectOne(new LambdaQueryWrapper<OrderGlassDetail>()
+ List<OrderGlassDetail> orderGlassDetails = orderGlassDetailMapper
+ .selectList(new LambdaQueryWrapper<OrderGlassDetail>()
.eq(OrderGlassDetail::getOrderId, orderId)
.eq(OrderGlassDetail::getOrderNumber, orderDetail.getOrderNumber())
- .orderByDesc(OrderGlassDetail::getArc)
- .last("limit 1")
);
- //鑾峰彇褰撳墠搴忓彿浜у搧Math.cos(
- Product product = productMapper.selectById(orderDetail.getProductId());
- //鍐呭崐寰�
- Double radius = orderDetail.getBendRadius() - product.getTotalThickness();
- //鍐呯墖鍐呭姬闀�
- Double innerArc = orderGlassDetail.getArc()
- -orderGlassDetail.getArc()*product.getTotalThickness()/orderDetail.getBendRadius();
+ for(OrderGlassDetail orderGlassDetail:orderGlassDetails) {
+ //鑾峰彇褰撳墠灞傛暟涓庝箣鍓嶅眰鏁扮殑鍘氬害
+ Double glassThickness = productMapper
+ .getGlassThickness(orderDetail.getProductId(), orderGlassDetail.getTechnologyNumber());
+ //鍐呭崐寰�
+ Double radius = orderDetail.getBendRadius() - glassThickness;
- //鎷遍珮
- String archRiseS = String.format("%.1f",radius-radius*Math.cos(innerArc/2/radius));
- Double archRise = Double.parseDouble(archRiseS);
- orderDetail.setArchRise(archRise);
- orderDetailMapper.update(null,new LambdaUpdateWrapper<OrderDetail>()
- .set(OrderDetail::getArchRise,archRise)
- .eq(OrderDetail::getId, orderDetail.getId())
- );
+ //鍐呯墖鍐呭姬闀�
+ Double innerArc = orderGlassDetails.get(0).getArc()
+ - orderGlassDetails.get(0).getArc() * glassThickness / orderDetail.getBendRadius();
+
+ //鎷遍珮
+ String archRiseS = String.format("%.1f", radius - radius * Math.cos(innerArc / 2 / radius));
+ Double archRise = Double.parseDouble(archRiseS);
+ orderGlassDetailMapper.update(null, new LambdaUpdateWrapper<OrderGlassDetail>()
+ .set(OrderGlassDetail::getArchRise, archRise)
+ .eq(OrderGlassDetail::getId, orderGlassDetail.getId())
+ );
+
+// orderDetailMapper.update(null,new LambdaUpdateWrapper<OrderDetail>()
+// .set(OrderDetail::getArchRise,archRise)
+// .eq(OrderDetail::getId, orderDetail.getId())
+ }
});
@@ -360,8 +368,6 @@
//淇敼璁㈠崟涓昏〃闈㈢Н涓庡懆闀夸互鍙婇噸閲�
orderMapper.updateOrderParameter(orderId);
-
-
}
public static List<OrderProcessDetail> getOrderProcessDetails(List<OrderGlassDetail> orderGlassDetails) {
@@ -384,7 +390,7 @@
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();
+ String startDate = LocalDate.now().minusDays(365).toString();
if(selectDate !=null && selectDate.size()==2){
if(!selectDate.get(0).isEmpty()){
startDate = selectDate.get(0);
@@ -423,8 +429,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);
@@ -591,7 +595,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);
@@ -618,7 +622,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);
@@ -646,7 +650,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);
@@ -841,16 +845,7 @@
});
returns.put("orderDetail",orderProductDetail);
-
-
-
-
-
-
return returns;
-
-
-
}
public boolean updateOrderPrintNumber(String orderId) {
@@ -994,7 +989,7 @@
byte[] dxfData = Base64.getDecoder().decode(fileData);
String orderId="NG25010101";
Integer orderNumber=1;
- orderMapper.saveOrderFile(fileName, fileData,orderId,orderNumber);
+ //orderMapper.saveOrderFile(fileName, fileData,orderId,orderNumber);
return true;
}
@@ -1012,7 +1007,7 @@
return map;
}
- public boolean updateOrderFile(Map<String,Object> object) {
+ public boolean updateOrderFile(JSONObject object) throws JsonProcessingException {
String orderId = "";
if (object.get("orderId") != null) {
orderId = object.get("orderId").toString();
@@ -1025,12 +1020,74 @@
if (object.get("dataBase64") != null) {
dataBase64 = object.get("dataBase64").toString();
}
+ String fileJson = null;
+ ObjectMapper om = new ObjectMapper();
+ if (object.get("fileJson") != null) {
+ fileJson = om.writeValueAsString(object.get("fileJson"));
+ }
Map<String,String> orderFile =orderMapper.selectOrderFile(orderId,orderNumber);
if(orderFile!=null){
- orderMapper.updateOrderFile("map.dxf", dataBase64,orderId,orderNumber);
+ orderMapper.updateOrderFile("map.dxf", dataBase64,orderId,orderNumber,fileJson);
}else{
- orderMapper.saveOrderFile("map.dxf", dataBase64,orderId,orderNumber);
+ orderMapper.saveOrderFile("map.dxf", dataBase64,orderId,orderNumber,fileJson);
}
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;
+ }
}
--
Gitblit v1.8.0