puzhibing
2024-10-31 fd35f223b7f40ee9ee4a9307384b54a96d7956a2
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/FinancialSettlementController.java
@@ -5,10 +5,15 @@
import cn.afterturn.easypoi.excel.entity.ExportParams;
import com.ruoyi.account.api.feignClient.AppUserCarClient;
import com.ruoyi.account.api.feignClient.AppUserClient;
import com.ruoyi.account.api.model.TAppUser;
import com.ruoyi.account.api.model.TAppUserCar;
import com.ruoyi.chargingPile.api.feignClient.ChargingGunClient;
import com.ruoyi.chargingPile.api.feignClient.ChargingPileClient;
import com.ruoyi.chargingPile.api.feignClient.ParkingLotClient;
import com.ruoyi.chargingPile.api.feignClient.SiteClient;
import com.ruoyi.chargingPile.api.model.Partner;
import com.ruoyi.chargingPile.api.model.Site;
import com.ruoyi.chargingPile.api.model.TChargingGun;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.core.utils.WebUtils;
@@ -46,9 +51,11 @@
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
@@ -80,18 +87,103 @@
        ChargingOrderListInfoVO res = chargingOrderService.chargingInfo(uid);
        return AjaxResult.success(res);
    }
    @Autowired
    private SiteClient siteClient;
    @Autowired
    private AppUserClient appUserClient;
    @Autowired
    private ChargingGunClient chargingGunClient;
    @Autowired
    private AppUserCarClient appUserCarClient;
    @ApiOperation(value = "充电时段统计-导出", tags = {"管理后台-财务结算"})
    @PutMapping("/export")
    public void export(@RequestBody ChargingListQuery dto)
    {
    public void export(@RequestBody ChargingListQuery dto) {
        ChargingOrderTimeVO res = chargingOrderService.chargingList(dto);
        List<TChargingOrderExport> tChargingOrderExports = new ArrayList<>();
        List<ChargingOrderListVO> exportList = res.getExportList();
        List<ChargingOrderListVO> exportList = res.getList().getRecords();
        int i = 0;
        for (ChargingOrderListVO chargingOrderListVO : exportList) {
            TChargingOrderExport tChargingOrderExport = new TChargingOrderExport();
            BeanUtils.copyProperties(chargingOrderListVO,tChargingOrderExport);
            tChargingOrderExports.add(tChargingOrderExport);
            List<Site> data = siteClient.getSiteByIds(Arrays.asList(chargingOrderListVO.getSiteId())).getData();
            TAppUser data3 = appUserClient.getUserById(chargingOrderListVO.getAppUserId()).getData();
            TChargingGun data4 = chargingGunClient.getChargingGunById(chargingOrderListVO.getChargingGunId()).getData();
            if (data!=null&&(!data.isEmpty())){
                tChargingOrderExport.setSiteCode(data.get(0).getCode());
                tChargingOrderExport.setSiteName(chargingOrderListVO.getSiteName());
                tChargingOrderExport.setCity(data.get(0).getCity());
                tChargingOrderExport.setCityName(data.get(0).getDistricts());
                tChargingOrderExport.setSiteType(data.get(0).getSiteType());
                tChargingOrderExport.setStatus(data.get(0).getStatus()+"");
                Partner data2 = siteClient.getPartnerR(data.get(0).getPartnerId()).getData();
                if (data2!=null){
                    tChargingOrderExport.setPartner(data2.getName());
                }
            }
            tChargingOrderExport.setSaleType("1");
            tChargingOrderExport.setBusinessCategory("1");
            tChargingOrderExport.setId(i);
            tChargingOrderExport.setCode(chargingOrderListVO.getCode());
            tChargingOrderExport.setTerminalName(chargingOrderListVO.getTerminalName());
//            tChargingOrderExport.setName();
            tChargingOrderExport.setOrderClassification("1");
            tChargingOrderExport.setStartType("扫码");
            tChargingOrderExport.setOne("小程序");
            tChargingOrderExport.setTwo("小程序");
            tChargingOrderExport.setCreateTime(chargingOrderListVO.getCreateTime()+"");
            tChargingOrderExport.setStartTime(chargingOrderListVO.getStartTime()+"");
            tChargingOrderExport.setEndTime(chargingOrderListVO.getEndTime()+"");
            tChargingOrderExport.setRechargePaymentStatus(chargingOrderListVO.getRechargePaymentStatus()+"");
            tChargingOrderExport.setType("充电订单");
            tChargingOrderExport.setChargingType("单桩双充");
            tChargingOrderExport.setEndmode(chargingOrderListVO.getEndMode()+"");
            tChargingOrderExport.setChargingEndAccount("平台");
            tChargingOrderExport.setIsFree("否");
            tChargingOrderExport.setElectrovalence(chargingOrderListVO.getElectrovalence()+"");
            tChargingOrderExport.setServiceCharge(chargingOrderListVO.getServiceCharge()+"");
            tChargingOrderExport.setTotal(chargingOrderListVO.getPaymentAmount()+"");
            tChargingOrderExport.setChargingCapacity(chargingOrderListVO.getElectricity()+"");
//            tChargingOrderExport.setElectrovalencePrice();
//            tChargingOrderExport.setServiceChargePrice();
//            tChargingOrderExport.setServiceChargePriceLook();
//            tChargingOrderExport.setCumulativeChargingTime();
            tChargingOrderExport.setStartSoc(chargingOrderListVO.getStartSoc());
            tChargingOrderExport.setEndtSoc(chargingOrderListVO.getEndSoc());
            tChargingOrderExport.setIsSoc("否");
            tChargingOrderExport.setIsSocType("");
            tChargingOrderExport.setIsSocNum("0");
            tChargingOrderExport.setUserType("普通个人用户");
//            tChargingOrderExport.setVipType();
            tChargingOrderExport.setIsPlus(chargingOrderListVO.getVipDiscountAmount().compareTo(BigDecimal.ZERO)>0?"是":"否");
            if (data3!=null){
                tChargingOrderExport.setRealName(data3.getName());
                tChargingOrderExport.setPhone(data3.getPhone());
                tChargingOrderExport.setNickName(data3.getName());
            }
            if (data4!=null){
                tChargingOrderExport.setDeviceCode(data4.getCode());
            }
            tChargingOrderExport.setAccountType("个人");
            List<TAppUserCar> data1 = appUserCarClient.getCarByIds(Arrays.asList(chargingOrderListVO.getAppUserCarId())).getData();
            if (data1!=null&&(!data1.isEmpty())){
                tChargingOrderExport.setCarNumber(data1.get(0).getLicensePlate());
                tChargingOrderExport.setCarType(data1.get(0).getVehicleModel());
                tChargingOrderExport.setCarBrand(data1.get(0).getVehicleBrand());
            }
            tChargingOrderExport.setOrderCode(chargingOrderListVO.getCode());
            tChargingOrderExport.setIsSingle("是");
            tChargingOrderExport.setPayTime(chargingOrderListVO.getPayTime()+"");
            tChargingOrderExport.setElectrovalenceSiteName("四川明星新能源科技有限公司");
            tChargingOrderExport.setCompanyNameAdmin("四川明星新能源科技有限公司");
            tChargingOrderExport.setMoneyType("线上计费");
            tChargingOrderExport.setDeviceType("设备直连(自由集控)");
            tChargingOrderExport.setSettlementCompanyName("四川明星新能源科技有限公司");
            tChargingOrderExport.setPrePaymentType("先付后退");
            tChargingOrderExport.setIsSecurity("是");
            tChargingOrderExports.add(tChargingOrderExport);
            i++;
        }
        Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), TChargingOrderExport.class, tChargingOrderExports);
        HttpServletResponse response = WebUtils.response();
@@ -142,6 +234,12 @@
        PageInfo<TSettlementConfirm> res = chargingOrderService.settlementList(dto);
        return R.ok(res);
    }
    @GetMapping(value = "/deleteSettlement")
    @ApiOperation(value = "结算表记录-删除", tags = {"管理后台-财务结算"})
    public R deleteSettlement(String uid) {
        tSettlementConfirmService.removeById(uid);
        return R.ok();
    }
    @GetMapping(value = "/downloadSettlement/{uid}")
    public R<TSettlementConfirm> downloadSettlement(@PathVariable("uid") String uid) {
        TSettlementConfirm byId = tSettlementConfirmService.getById(uid);
@@ -150,6 +248,10 @@
                    .between(TChargingOrder::getStartTime, byId.getStartTime(), byId.getEndTime())
                    .eq(TChargingOrder::getStatus, 5)
                    .eq(TChargingOrder::getRechargePaymentStatus, 2).list();
            int i = 1;
            for (TChargingOrder chargingOrder : list) {
            }
            byId.setList(list);
            String format = byId.getStartTime().format(DateTimeFormatter.ofPattern("yyyy年MM月dd日HH:mm:ss"));
            String format1 = byId.getEndTime().format(DateTimeFormatter.ofPattern("yyyy年MM月dd日HH:mm:ss"));