廖井涛
4 天以前 2f44fc75c78e9291f07a0864199235cde689fa8d
north-glass-erp/src/main/java/com/example/erp/service/sd/OrderService.java
@@ -49,8 +49,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;
@@ -61,6 +63,7 @@
        this.logService = logService;
        this.workOrderMapper = workOrderMapper;
        this.flowCardMapper = flowCardMapper;
        this.basicOtherMoneyMapper = basicOtherMoneyMapper;
    }
    public boolean saveOrder(Map<String,Object> orderMap) throws Exception {
@@ -204,7 +207,7 @@
        }else if(dateType.equals("year")){
            Integer maxOrderId = orderMapper.selectMaxOrderIdByYear();
            String formattedNumber = String.format("%"+(orderIdTypeMantissa+4)+"d", 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);
@@ -604,8 +607,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 {
                // 解析为Map(也可解析为自定义实体类,如OtherColumnsDTO)
                Map<String, Object> otherColumnsJson = objectMapper.readValue(otherColumnsStr, Map.class);
                 detail.setOtherColumnsJson(otherColumnsJson);
            } catch (JsonProcessingException e) {
                System.err.println("解析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);
@@ -1053,6 +1076,7 @@
        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;