package cn.iocoder.yudao.module.mes.controller.admin.pd.basedata; import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; import cn.iocoder.yudao.module.mes.controller.admin.pd.basedata.vo.*; import cn.iocoder.yudao.module.mes.dal.dataobject.pd.basedata.MesPdElectricityTypeDO; import cn.iocoder.yudao.module.mes.dal.dataobject.pd.basedata.MesPdServicePackageDO; import cn.iocoder.yudao.module.mes.dal.dataobject.pd.basedata.MesPdVoltageLevelDO; import cn.iocoder.yudao.module.mes.service.pd.basedata.MesPdDiscountPolicyService; import cn.iocoder.yudao.module.mes.service.pd.basedata.MesPdElectricityTypeService; import cn.iocoder.yudao.module.mes.service.pd.basedata.MesPdPriceStandardService; import cn.iocoder.yudao.module.mes.service.pd.basedata.MesPdServicePackageService; import cn.iocoder.yudao.module.mes.service.pd.basedata.MesPdTieredPriceService; import cn.iocoder.yudao.module.mes.service.pd.basedata.MesPdVoltageLevelService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.Valid; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.io.IOException; import java.util.List; import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; @Tag(name = "管理后台 - MES 产品基础数据") @RestController @RequestMapping("/mes/pd") @Validated public class MesPdBaseDataController { @Resource private MesPdElectricityTypeService electricityTypeService; @Resource private MesPdVoltageLevelService voltageLevelService; @Resource private MesPdServicePackageService servicePackageService; @Resource private MesPdPriceStandardService priceStandardService; @Resource private MesPdDiscountPolicyService discountPolicyService; @Resource private MesPdTieredPriceService tieredPriceService; // ==================== 用电类型 ==================== @PostMapping("/electricity-type/create") @Operation(summary = "创建用电类型") @PreAuthorize("@ss.hasPermission('mes:pd-basedata:create')") public CommonResult createElectricityType(@Valid @RequestBody MesPdElectricityTypeSaveReqVO createReqVO) { return success(electricityTypeService.createElectricityType(createReqVO)); } @PutMapping("/electricity-type/update") @Operation(summary = "更新用电类型") @PreAuthorize("@ss.hasPermission('mes:pd-basedata:update')") public CommonResult updateElectricityType(@Valid @RequestBody MesPdElectricityTypeSaveReqVO updateReqVO) { electricityTypeService.updateElectricityType(updateReqVO); return success(true); } @DeleteMapping("/electricity-type/delete") @Operation(summary = "删除用电类型") @Parameter(name = "id", description = "编号", required = true) @PreAuthorize("@ss.hasPermission('mes:pd-basedata:delete')") public CommonResult deleteElectricityType(@RequestParam("id") Long id) { electricityTypeService.deleteElectricityType(id); return success(true); } @GetMapping("/electricity-type/get") @Operation(summary = "获得用电类型") @Parameter(name = "id", description = "编号", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('mes:pd-basedata:query')") public CommonResult getElectricityType(@RequestParam("id") Long id) { return success(electricityTypeService.getElectricityType(id)); } @GetMapping("/electricity-type/page") @Operation(summary = "获得用电类型分页") @PreAuthorize("@ss.hasPermission('mes:pd-basedata:query')") public CommonResult> getElectricityTypePage(@Valid MesPdElectricityTypePageReqVO pageReqVO) { return success(electricityTypeService.getElectricityTypePage(pageReqVO)); } @GetMapping("/electricity-type/list") @Operation(summary = "获得用电类型列表") @PreAuthorize("@ss.hasPermission('mes:pd-basedata:query')") public CommonResult> getElectricityTypeList() { return success(electricityTypeService.getElectricityTypeList()); } @GetMapping("/electricity-type/export-excel") @Operation(summary = "导出用电类型 Excel") @PreAuthorize("@ss.hasPermission('mes:pd-basedata:export')") @ApiAccessLog(operateType = EXPORT) public void exportElectricityTypeExcel(@Valid MesPdElectricityTypePageReqVO pageReqVO, HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); ExcelUtils.write(response, "用电类型.xls", "数据", MesPdElectricityTypeRespVO.class, electricityTypeService.getElectricityTypePage(pageReqVO).getList()); } // ==================== 电压等级 ==================== @PostMapping("/voltage-level/create") @Operation(summary = "创建电压等级") @PreAuthorize("@ss.hasPermission('mes:pd-basedata:create')") public CommonResult createVoltageLevel(@Valid @RequestBody MesPdVoltageLevelSaveReqVO createReqVO) { return success(voltageLevelService.createVoltageLevel(createReqVO)); } @PutMapping("/voltage-level/update") @Operation(summary = "更新电压等级") @PreAuthorize("@ss.hasPermission('mes:pd-basedata:update')") public CommonResult updateVoltageLevel(@Valid @RequestBody MesPdVoltageLevelSaveReqVO updateReqVO) { voltageLevelService.updateVoltageLevel(updateReqVO); return success(true); } @DeleteMapping("/voltage-level/delete") @Operation(summary = "删除电压等级") @Parameter(name = "id", description = "编号", required = true) @PreAuthorize("@ss.hasPermission('mes:pd-basedata:delete')") public CommonResult deleteVoltageLevel(@RequestParam("id") Long id) { voltageLevelService.deleteVoltageLevel(id); return success(true); } @GetMapping("/voltage-level/get") @Operation(summary = "获得电压等级") @Parameter(name = "id", description = "编号", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('mes:pd-basedata:query')") public CommonResult getVoltageLevel(@RequestParam("id") Long id) { return success(voltageLevelService.getVoltageLevel(id)); } @GetMapping("/voltage-level/page") @Operation(summary = "获得电压等级分页") @PreAuthorize("@ss.hasPermission('mes:pd-basedata:query')") public CommonResult> getVoltageLevelPage(@Valid MesPdVoltageLevelPageReqVO pageReqVO) { return success(voltageLevelService.getVoltageLevelPage(pageReqVO)); } @GetMapping("/voltage-level/list") @Operation(summary = "获得电压等级列表") @PreAuthorize("@ss.hasPermission('mes:pd-basedata:query')") public CommonResult> getVoltageLevelList() { return success(voltageLevelService.getVoltageLevelList()); } @GetMapping("/voltage-level/export-excel") @Operation(summary = "导出电压等级 Excel") @PreAuthorize("@ss.hasPermission('mes:pd-basedata:export')") @ApiAccessLog(operateType = EXPORT) public void exportVoltageLevelExcel(@Valid MesPdVoltageLevelPageReqVO pageReqVO, HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); ExcelUtils.write(response, "电压等级.xls", "数据", MesPdVoltageLevelRespVO.class, voltageLevelService.getVoltageLevelPage(pageReqVO).getList()); } // ==================== 服务套餐 ==================== @PostMapping("/service-package/create") @Operation(summary = "创建服务套餐") @PreAuthorize("@ss.hasPermission('mes:pd-basedata:create')") public CommonResult createServicePackage(@Valid @RequestBody MesPdServicePackageSaveReqVO createReqVO) { return success(servicePackageService.createServicePackage(createReqVO)); } @PutMapping("/service-package/update") @Operation(summary = "更新服务套餐") @PreAuthorize("@ss.hasPermission('mes:pd-basedata:update')") public CommonResult updateServicePackage(@Valid @RequestBody MesPdServicePackageSaveReqVO updateReqVO) { servicePackageService.updateServicePackage(updateReqVO); return success(true); } @DeleteMapping("/service-package/delete") @Operation(summary = "删除服务套餐") @Parameter(name = "id", description = "编号", required = true) @PreAuthorize("@ss.hasPermission('mes:pd-basedata:delete')") public CommonResult deleteServicePackage(@RequestParam("id") Long id) { servicePackageService.deleteServicePackage(id); return success(true); } @GetMapping("/service-package/get") @Operation(summary = "获得服务套餐") @Parameter(name = "id", description = "编号", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('mes:pd-basedata:query')") public CommonResult getServicePackage(@RequestParam("id") Long id) { return success(servicePackageService.getServicePackage(id)); } @GetMapping("/service-package/page") @Operation(summary = "获得服务套餐分页") @PreAuthorize("@ss.hasPermission('mes:pd-basedata:query')") public CommonResult> getServicePackagePage(@Valid MesPdServicePackagePageReqVO pageReqVO) { return success(servicePackageService.getServicePackagePage(pageReqVO)); } @GetMapping("/service-package/list") @Operation(summary = "获得服务套餐列表") @PreAuthorize("@ss.hasPermission('mes:pd-basedata:query')") public CommonResult> getServicePackageList() { return success(servicePackageService.getServicePackageList()); } @GetMapping("/service-package/export-excel") @Operation(summary = "导出服务套餐 Excel") @PreAuthorize("@ss.hasPermission('mes:pd-basedata:export')") @ApiAccessLog(operateType = EXPORT) public void exportServicePackageExcel(@Valid MesPdServicePackagePageReqVO pageReqVO, HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); ExcelUtils.write(response, "服务套餐.xls", "数据", MesPdServicePackageRespVO.class, servicePackageService.getServicePackagePage(pageReqVO).getList()); } // ==================== 定价标准 ==================== @PostMapping("/price-standard/create") @Operation(summary = "创建定价标准") @PreAuthorize("@ss.hasPermission('mes:pd-basedata:create')") public CommonResult createPriceStandard(@Valid @RequestBody MesPdPriceStandardSaveReqVO createReqVO) { return success(priceStandardService.createPriceStandard(createReqVO)); } @PutMapping("/price-standard/update") @Operation(summary = "更新定价标准") @PreAuthorize("@ss.hasPermission('mes:pd-basedata:update')") public CommonResult updatePriceStandard(@Valid @RequestBody MesPdPriceStandardSaveReqVO updateReqVO) { priceStandardService.updatePriceStandard(updateReqVO); return success(true); } @DeleteMapping("/price-standard/delete") @Operation(summary = "删除定价标准") @Parameter(name = "id", description = "编号", required = true) @PreAuthorize("@ss.hasPermission('mes:pd-basedata:delete')") public CommonResult deletePriceStandard(@RequestParam("id") Long id) { priceStandardService.deletePriceStandard(id); return success(true); } @GetMapping("/price-standard/get") @Operation(summary = "获得定价标准") @Parameter(name = "id", description = "编号", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('mes:pd-basedata:query')") public CommonResult getPriceStandard(@RequestParam("id") Long id) { return success(priceStandardService.getPriceStandard(id)); } @GetMapping("/price-standard/page") @Operation(summary = "获得定价标准分页") @PreAuthorize("@ss.hasPermission('mes:pd-basedata:query')") public CommonResult> getPriceStandardPage(@Valid MesPdPriceStandardPageReqVO pageReqVO) { return success(priceStandardService.getPriceStandardPage(pageReqVO)); } @GetMapping("/price-standard/export-excel") @Operation(summary = "导出定价标准 Excel") @PreAuthorize("@ss.hasPermission('mes:pd-basedata:export')") @ApiAccessLog(operateType = EXPORT) public void exportPriceStandardExcel(@Valid MesPdPriceStandardPageReqVO pageReqVO, HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); ExcelUtils.write(response, "定价标准.xls", "数据", MesPdPriceStandardRespVO.class, priceStandardService.getPriceStandardPage(pageReqVO).getList()); } // ==================== 优惠策略 ==================== @PostMapping("/discount-policy/create") @Operation(summary = "创建优惠策略") @PreAuthorize("@ss.hasPermission('mes:pd-basedata:create')") public CommonResult createDiscountPolicy(@Valid @RequestBody MesPdDiscountPolicySaveReqVO createReqVO) { return success(discountPolicyService.createDiscountPolicy(createReqVO)); } @PutMapping("/discount-policy/update") @Operation(summary = "更新优惠策略") @PreAuthorize("@ss.hasPermission('mes:pd-basedata:update')") public CommonResult updateDiscountPolicy(@Valid @RequestBody MesPdDiscountPolicySaveReqVO updateReqVO) { discountPolicyService.updateDiscountPolicy(updateReqVO); return success(true); } @DeleteMapping("/discount-policy/delete") @Operation(summary = "删除优惠策略") @Parameter(name = "id", description = "编号", required = true) @PreAuthorize("@ss.hasPermission('mes:pd-basedata:delete')") public CommonResult deleteDiscountPolicy(@RequestParam("id") Long id) { discountPolicyService.deleteDiscountPolicy(id); return success(true); } @GetMapping("/discount-policy/get") @Operation(summary = "获得优惠策略") @Parameter(name = "id", description = "编号", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('mes:pd-basedata:query')") public CommonResult getDiscountPolicy(@RequestParam("id") Long id) { return success(discountPolicyService.getDiscountPolicy(id)); } @GetMapping("/discount-policy/page") @Operation(summary = "获得优惠策略分页") @PreAuthorize("@ss.hasPermission('mes:pd-basedata:query')") public CommonResult> getDiscountPolicyPage(@Valid MesPdDiscountPolicyPageReqVO pageReqVO) { return success(discountPolicyService.getDiscountPolicyPage(pageReqVO)); } @GetMapping("/discount-policy/export-excel") @Operation(summary = "导出优惠策略 Excel") @PreAuthorize("@ss.hasPermission('mes:pd-basedata:export')") @ApiAccessLog(operateType = EXPORT) public void exportDiscountPolicyExcel(@Valid MesPdDiscountPolicyPageReqVO pageReqVO, HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); ExcelUtils.write(response, "优惠策略.xls", "数据", MesPdDiscountPolicyRespVO.class, discountPolicyService.getDiscountPolicyPage(pageReqVO).getList()); } // ==================== 阶梯电价 ==================== @PostMapping("/tiered-price/create") @Operation(summary = "创建阶梯电价") @PreAuthorize("@ss.hasPermission('mes:pd-basedata:create')") public CommonResult createTieredPrice(@Valid @RequestBody MesPdTieredPriceSaveReqVO createReqVO) { return success(tieredPriceService.createTieredPrice(createReqVO)); } @PutMapping("/tiered-price/update") @Operation(summary = "更新阶梯电价") @PreAuthorize("@ss.hasPermission('mes:pd-basedata:update')") public CommonResult updateTieredPrice(@Valid @RequestBody MesPdTieredPriceSaveReqVO updateReqVO) { tieredPriceService.updateTieredPrice(updateReqVO); return success(true); } @DeleteMapping("/tiered-price/delete") @Operation(summary = "删除阶梯电价") @Parameter(name = "id", description = "编号", required = true) @PreAuthorize("@ss.hasPermission('mes:pd-basedata:delete')") public CommonResult deleteTieredPrice(@RequestParam("id") Long id) { tieredPriceService.deleteTieredPrice(id); return success(true); } @GetMapping("/tiered-price/get") @Operation(summary = "获得阶梯电价") @Parameter(name = "id", description = "编号", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('mes:pd-basedata:query')") public CommonResult getTieredPrice(@RequestParam("id") Long id) { return success(tieredPriceService.getTieredPrice(id)); } @GetMapping("/tiered-price/page") @Operation(summary = "获得阶梯电价分页") @PreAuthorize("@ss.hasPermission('mes:pd-basedata:query')") public CommonResult> getTieredPricePage(@Valid MesPdTieredPricePageReqVO pageReqVO) { return success(tieredPriceService.getTieredPricePage(pageReqVO)); } @GetMapping("/tiered-price/export-excel") @Operation(summary = "导出阶梯电价 Excel") @PreAuthorize("@ss.hasPermission('mes:pd-basedata:export')") @ApiAccessLog(operateType = EXPORT) public void exportTieredPriceExcel(@Valid MesPdTieredPricePageReqVO pageReqVO, HttpServletResponse response) throws IOException { pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); ExcelUtils.write(response, "阶梯电价.xls", "数据", MesPdTieredPriceRespVO.class, tieredPriceService.getTieredPricePage(pageReqVO).getList()); } }