Pu Zhibing
2025-01-24 fd45fcbd496bbeaf9ee18edd8f2f858cf9cebaf3
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
@@ -8,6 +8,7 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.account.api.feignClient.*;
import com.ruoyi.account.api.model.*;
import com.ruoyi.common.core.constant.ExpressCompanyMap;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.StringUtils;
@@ -35,12 +36,15 @@
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.feignClient.SysUserClient;
import com.ruoyi.system.api.model.LoginUser;
import org.apache.poi.ss.usermodel.*;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDateTime;
@@ -342,6 +346,14 @@
            List<ShopBalanceStatement> data = shopBalanceStatementClient.getShopBalanceStatementList(Arrays.asList(1, 2, 3), Long.valueOf(orderPageListVo.getId())).getData();
            BigDecimal reduce = data.stream().map(ShopBalanceStatement::getVariableAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
            orderPageListVo.setGetCommission(reduce);
            String expressJson = orderPageListVo.getExpressJson();
            // {"com":"zhongtong","num":"78853319672621"}
            JSONObject jsonObject = JSONObject.parseObject(expressJson);
            String companyName = ExpressCompanyMap.getCompanyNameByCode(jsonObject.getString("com"));
            orderPageListVo.setExpressCompany(companyName);
            orderPageListVo.setExpressNum(jsonObject.getString("num"));
        }
        return pageInfo.setRecords(list);
    }
@@ -901,4 +913,44 @@
            }
        }
    }
    @Override
    public void importExpress(MultipartFile file) {
        try (InputStream inputStream = file.getInputStream()) {
            Workbook workbook = WorkbookFactory.create(inputStream);
            Sheet sheet = workbook.getSheetAt(0); // 获取第一个Sheet
            int lastRowNum = sheet.getLastRowNum();
            for (int i = 1; i <= lastRowNum; i++) {
                Row row = sheet.getRow(i);
                String orderNum = row.getCell(1).getStringCellValue();
                // 快递单号
                String expressNum = row.getCell(7).getStringCellValue();
                // 快递公司名称
                String expressName = row.getCell(8).getStringCellValue();
                // 省区划代码
                String provinceCode = row.getCell(10).getStringCellValue();
                // 市区划代码
                String cityCode = row.getCell(12).getStringCellValue();
                Order order = this.getOne(new LambdaQueryWrapper<Order>()
                        .eq(Order::getOrderNumber, orderNum)
                        .eq(Order::getOrderType, 1)
                        .eq(Order::getDistributionMode,2)
                        .eq(Order::getOrderStatus, 1)
                );
                if (order != null){
                    JSONObject jsonObject = new JSONObject();
                    jsonObject.put("com", expressName);
                    jsonObject.put("num", expressNum);
                    order.setExpressJson(jsonObject.toJSONString());
                    order.setDeliverProvinceCode(provinceCode);
                    order.setDeliverCityCode(cityCode);
                    order.setOrderStatus(2);
                    this.updateById(order);
                }
            }
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
}