廖井涛
2025-10-20 7e484c0e095b1b3d52f5747d20f23ec2ec0508d2
north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java
@@ -21,6 +21,8 @@
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;
@@ -81,10 +83,10 @@
            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"));
                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());
            }
@@ -165,7 +167,7 @@
        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) {
        //根据传入的当前月份或者当天生成订单id
        String orderId =  getOrderId(orderIdType);
        //往主表插数据
@@ -173,7 +175,7 @@
        order.setCreateOrder(2);
        orderMapper.insert(order);
        insertOtherDetail(orderId,OrderDetails,orderOtherMoneyList);
        insertOtherDetail(orderId,OrderDetails,orderOtherMoneyList,position);
    }
    private String getOrderId(String dateType){
@@ -209,7 +211,7 @@
    //修改订单数据,并且重新生成多个副表数据
    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 +236,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 -> {
@@ -292,7 +294,7 @@
            }
            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){
@@ -307,7 +309,7 @@
        //往明细表插数据
        orderDetailMapper.insertBatch(OrderDetails);
        //往小片表传入产品数据
        orderGlassDetailMapper.insertOrderGlassDetail(orderId);
        orderGlassDetailMapper.insertOrderGlassDetail(orderId,position.get("outside"),position.get("inside"));
        //修改成品拱高
        List<OrderDetail> orderDetails = orderDetailMapper
@@ -1003,7 +1005,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;
    }
@@ -1021,7 +1023,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();
@@ -1034,11 +1036,16 @@
        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;
    }