guoyujie
8 小时以前 1da4e70b2972e1ab77fa75ad0da529a006150ab5
north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java
@@ -25,6 +25,7 @@
import com.example.erp.service.userInfo.SysErrorService;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
@@ -54,9 +55,9 @@
    private final BasicOtherMoneyMapper basicOtherMoneyMapper;
    private final OrderProcessDetailMapper orderProcessDetailMapper;
    private final OrderFileMapper orderFileMapper;
    private final DeliveryService deliveryService;
    public OrderService(OrderMapper orderMapper, OrderDetailMapper orderDetailMapper, OrderGlassDetailMapper orderGlassDetailMapper, OrderProcessDetailMapper orderProcessDetailMapper, SysErrorService sysErrorService, OrderOtherMoneyMapper orderOtherMoneyMapper, ProductMapper productMapper, LogService logService, WorkOrderMapper workOrderMapper, FlowCardMapper flowCardMapper, BasicOtherMoneyMapper basicOtherMoneyMapper,DeliveryService deliveryService) {
    public OrderService(OrderMapper orderMapper, OrderDetailMapper orderDetailMapper, OrderGlassDetailMapper orderGlassDetailMapper, OrderProcessDetailMapper orderProcessDetailMapper, SysErrorService sysErrorService, OrderOtherMoneyMapper orderOtherMoneyMapper, ProductMapper productMapper, LogService logService, WorkOrderMapper workOrderMapper, FlowCardMapper flowCardMapper, BasicOtherMoneyMapper basicOtherMoneyMapper, DeliveryService deliveryService, OrderFileMapper orderFileMapper) {
        this.orderMapper = orderMapper;
        this.orderDetailMapper = orderDetailMapper;
        this.orderGlassDetailMapper = orderGlassDetailMapper;
@@ -69,6 +70,8 @@
        this.flowCardMapper = flowCardMapper;
        this.basicOtherMoneyMapper = basicOtherMoneyMapper;
        this.deliveryService = deliveryService;
        this.orderFileMapper = orderFileMapper;
    }
    public boolean saveOrder(Map<String,Object> orderMap) throws Exception {
@@ -246,7 +249,11 @@
        //删除订单工艺表
        // orderProcessDetailMapper.delete(new LambdaQueryWrapper<OrderProcessDetail>().eq(OrderProcessDetail::getOrderId, order.getOrderId()));
        orderDetailMapper.deleteOrderFile(order.getOrderId());
        orderFileMapper.update(null,
                new LambdaUpdateWrapper<OrderFile>()
                        .eq(OrderFile::getOrderId, order.getOrderId())
                        .set(OrderFile::getOrderNumber, null)
        );
        insertOtherDetail(order.getOrderId(),OrderDetails,orderOtherMoneyList, position);
    }
@@ -272,16 +279,13 @@
            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)));
            /*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);
            }*/
            //判断次序号文件是否相同
            if(OrderDetails.get(i).getFileId()!=null){
                orderFileMapper.update(null,new LambdaUpdateWrapper<OrderFile>()
                        .set(OrderFile::getOrderNumber,OrderDetails.get(i).getOrderNumber())
                        .eq(OrderFile::getId,OrderDetails.get(i).getFileId()));
            }
            Map<String,Object> otherColumns = JSON.parseObject(OrderDetails.get(i).getOtherColumns(), new TypeReference<Map<String, Object>>(){});
            int finalI = i;
@@ -303,14 +307,23 @@
            }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).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");
            }
        }
        //删除订单文件没有序号多余的数据
        orderFileMapper.delete(new LambdaQueryWrapper<OrderFile>()
                .eq(OrderFile::getOrderId, orderId)
                .isNull(OrderFile::getOrderNumber));
        //往明细表插数据
        orderDetailMapper.insertBatch(OrderDetails);
@@ -330,6 +343,7 @@
                            .eq(OrderGlassDetail::getOrderId, orderId)
                            .eq(OrderGlassDetail::getOrderNumber, orderDetail.getOrderNumber())
                    );
            for(OrderGlassDetail orderGlassDetail:orderGlassDetails) {
                //获取当前层数与之前层数的厚度
@@ -424,7 +438,7 @@
    }
    //删除订单
    public Integer deleteOrder(String id) {
        orderDetailMapper.deleteOrderFile(id);
        orderFileMapper.delete(new QueryWrapper<OrderFile>().eq("order_id",id));
        return orderMapper.delete(
                new QueryWrapper<Order>().eq("order_id",id)
        );
@@ -434,7 +448,8 @@
    //查询订单主表与副表信息
    public Map<String,Object> getOrderById(String id) {
        Order order = orderMapper.selectOne(new QueryWrapper<Order>().eq("order_id",id));
        List<OrderDetail> orderDetails = orderDetailMapper.selectList(new QueryWrapper<OrderDetail>().eq("order_id",id));
        List<OrderDetail> orderDetails = orderDetailMapper.selectListWithFileById(id);
        List<OrderOtherMoney> orderOtherMoneyList = orderOtherMoneyMapper.findById(id);
        List<Map<String,String>> orderFileList = orderMapper.selectOrderFileList(id);
        Integer deliveryCount = orderMapper.selectDeliveryStateConut(id);
@@ -621,6 +636,7 @@
        }
        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) {
@@ -642,6 +658,10 @@
        map.put("data",orderDetailList);
        map.put("title",basicOtherMoneyList);
        map.put("total",orderDetailMapper.getOrderReportTotal(offset, pageSize, startDate, endDate, orderDetail,"order"));
        map.put("orderOtherMoney",
                Collections.singletonList(
                        basicOtherMoneyMapper.selectList(new QueryWrapper<BasicOtherMoney>().eq("state",1))
                ));
        List<String> list = new ArrayList<>();
        list.add(startDate);
        list.add(endDate);