Pārlūkot izejas kodu

更改能源费率

dongjh 1 gadu atpakaļ
vecāks
revīzija
7bd1b7e842

+ 145 - 58
module_base/src/main/java/org/jeecg/modules/energyRate/controller/EnergyRateController.java

@@ -1,43 +1,45 @@
 package org.jeecg.modules.energyRate.controller;
 
+import java.io.IOException;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
-import java.util.stream.Collectors;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
+
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import org.jeecg.common.api.vo.Result;
-import org.jeecg.common.system.query.QueryGenerator;
-import org.jeecg.common.util.oConvertUtils;
-import org.jeecg.modules.energyRate.entity.EnergyRate;
-import org.jeecg.modules.energyRate.service.IEnergyRateService;
-
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import lombok.extern.slf4j.Slf4j;
 
 import org.jeecgframework.poi.excel.ExcelImportUtil;
 import org.jeecgframework.poi.excel.def.NormalExcelConstants;
 import org.jeecgframework.poi.excel.entity.ExportParams;
 import org.jeecgframework.poi.excel.entity.ImportParams;
 import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
-import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.common.system.vo.LoginUser;
+import org.apache.shiro.SecurityUtils;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.modules.energyRate.entity.EnergyRateDetail;
+import org.jeecg.modules.energyRate.entity.EnergyRate;
+import org.jeecg.modules.energyRate.vo.EnergyRatePage;
+import org.jeecg.modules.energyRate.service.IEnergyRateService;
+import org.jeecg.modules.energyRate.service.IEnergyRateDetailService;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartHttpServletRequest;
-import org.springframework.web.servlet.ModelAndView;
-import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.extern.slf4j.Slf4j;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.jeecg.common.aspect.annotation.AutoLog;
 
  /**
- * @Description: 能源费率
+ * @Description: base_energy_rate
  * @Author: jeecg-boot
  * @Date:   2024-01-23
  * @Version: V1.0
@@ -46,10 +48,12 @@ import org.jeecg.common.aspect.annotation.AutoLog;
 @RestController
 @RequestMapping("/energyRate/energyRate")
 @Slf4j
-public class EnergyRateController extends JeecgController<EnergyRate, IEnergyRateService> {
+public class EnergyRateController {
 	@Autowired
 	private IEnergyRateService energyRateService;
-
+	@Autowired
+	private IEnergyRateDetailService energyRateDetailService;
+	
 	/**
 	 * 分页列表查询
 	 *
@@ -59,94 +63,120 @@ public class EnergyRateController extends JeecgController<EnergyRate, IEnergyRat
 	 * @param req
 	 * @return
 	 */
-	//@AutoLog(value = "能源费率-分页列表查询")
-	@ApiOperation(value="能源费率-分页列表查询", notes="能源费率-分页列表查询")
+	//@AutoLog(value = "能源费率分页列表查询")
+	@ApiOperation(value="能源费率分页列表查询", notes="能源费率分页列表查询")
 	@GetMapping(value = "/list")
 	public Result<IPage<EnergyRate>> queryPageList(EnergyRate energyRate,
-								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
-								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
-								   HttpServletRequest req) {
+												   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+												   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+												   HttpServletRequest req) {
 		QueryWrapper<EnergyRate> queryWrapper = QueryGenerator.initQueryWrapper(energyRate, req.getParameterMap());
 		Page<EnergyRate> page = new Page<EnergyRate>(pageNo, pageSize);
 		IPage<EnergyRate> pageList = energyRateService.page(page, queryWrapper);
 		return Result.OK(pageList);
 	}
-
+	
 	/**
 	 *   添加
 	 *
-	 * @param energyRate
+	 * @param energyRatePage
 	 * @return
 	 */
-	@AutoLog(value = "能源费率-添加")
-	@ApiOperation(value="能源费率-添加", notes="能源费率-添加")
-	//@RequiresPermissions("org.jeecg.modules:base_energy_rate:add")
+	@AutoLog(value = "能源费率添加")
+	@ApiOperation(value="能源费率添加", notes="能源费率添加")
+    //@RequiresPermissions("org.jeecg.modules:base_energy_rate:add")
 	@PostMapping(value = "/add")
-	public Result<String> add(@RequestBody EnergyRate energyRate) {
-		energyRateService.save(energyRate);
+	public Result<String> add(@RequestBody EnergyRatePage energyRatePage) {
+		EnergyRate energyRate = new EnergyRate();
+		BeanUtils.copyProperties(energyRatePage, energyRate);
+		energyRateService.saveMain(energyRate, energyRatePage.getEnergyRateDetailList());
 		return Result.OK("添加成功!");
 	}
-
+	
 	/**
 	 *  编辑
 	 *
-	 * @param energyRate
+	 * @param energyRatePage
 	 * @return
 	 */
-	@AutoLog(value = "能源费率-编辑")
-	@ApiOperation(value="能源费率-编辑", notes="能源费率-编辑")
-	//@RequiresPermissions("org.jeecg.modules:base_energy_rate:edit")
+	@AutoLog(value = "能源费率编辑")
+	@ApiOperation(value="能源费率编辑", notes="能源费率编辑")
+    //@RequiresPermissions("org.jeecg.modules:base_energy_rate:edit")
 	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
-	public Result<String> edit(@RequestBody EnergyRate energyRate) {
-		energyRateService.updateById(energyRate);
+	public Result<String> edit(@RequestBody EnergyRatePage energyRatePage) {
+		EnergyRate energyRate = new EnergyRate();
+		BeanUtils.copyProperties(energyRatePage, energyRate);
+		EnergyRate energyRateEntity = energyRateService.getById(energyRate.getId());
+		if(energyRateEntity ==null) {
+			return Result.error("未找到对应数据");
+		}
+		energyRateService.updateMain(energyRate, energyRatePage.getEnergyRateDetailList());
 		return Result.OK("编辑成功!");
 	}
-
+	
 	/**
 	 *   通过id删除
 	 *
 	 * @param id
 	 * @return
 	 */
-	@AutoLog(value = "能源费率-通过id删除")
-	@ApiOperation(value="能源费率-通过id删除", notes="能源费率-通过id删除")
-	//@RequiresPermissions("org.jeecg.modules:base_energy_rate:delete")
+	@AutoLog(value = "能源费率通过id删除")
+	@ApiOperation(value="能源费率通过id删除", notes="能源费率通过id删除")
+    //@RequiresPermissions("org.jeecg.modules:base_energy_rate:delete")
 	@DeleteMapping(value = "/delete")
 	public Result<String> delete(@RequestParam(name="id",required=true) String id) {
-		energyRateService.removeById(id);
+		energyRateService.delMain(id);
 		return Result.OK("删除成功!");
 	}
-
+	
 	/**
 	 *  批量删除
 	 *
 	 * @param ids
 	 * @return
 	 */
-	@AutoLog(value = "能源费率-批量删除")
-	@ApiOperation(value="能源费率-批量删除", notes="能源费率-批量删除")
-	//@RequiresPermissions("org.jeecg.modules:base_energy_rate:deleteBatch")
+	@AutoLog(value = "能源费率批量删除")
+	@ApiOperation(value="能源费率批量删除", notes="能源费率批量删除")
+    //@RequiresPermissions("org.jeecg.modules:base_energy_rate:deleteBatch")
 	@DeleteMapping(value = "/deleteBatch")
 	public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
-		this.energyRateService.removeByIds(Arrays.asList(ids.split(",")));
-		return Result.OK("批量删除成功!");
+		this.energyRateService.delBatchMain(Arrays.asList(ids.split(",")));
+		return Result.OK("批量删除成功");
 	}
-
+	
 	/**
 	 * 通过id查询
 	 *
 	 * @param id
 	 * @return
 	 */
-	//@AutoLog(value = "能源费率-通过id查询")
-	@ApiOperation(value="能源费率-通过id查询", notes="能源费率-通过id查询")
+	//@AutoLog(value = "能源费率通过id查询")
+	@ApiOperation(value="能源费率通过id查询", notes="能源费率通过id查询")
 	@GetMapping(value = "/queryById")
 	public Result<EnergyRate> queryById(@RequestParam(name="id",required=true) String id) {
 		EnergyRate energyRate = energyRateService.getById(id);
-		if(energyRate==null) {
+		if(energyRate ==null) {
 			return Result.error("未找到对应数据");
 		}
 		return Result.OK(energyRate);
+
+	}
+	
+	/**
+	 * 通过id查询
+	 *
+	 * @param id
+	 * @return
+	 */
+	//@AutoLog(value = "base_energy_rate_detail-通过主表ID查询")
+	@ApiOperation(value="能源费率子表-通过主表ID查询", notes="能源费率子表-通过主表ID查询")
+	@GetMapping(value = "/queryDetailByMainId")
+	public Result<IPage<EnergyRateDetail>> queryBaseEnergyRateDetailListByMainId(@RequestParam(name="id",required=true) String id) {
+		List<EnergyRateDetail> energyRateDetailList = energyRateDetailService.selectByMainId(id);
+		IPage <EnergyRateDetail> page = new Page<>();
+		page.setRecords(energyRateDetailList);
+		page.setTotal(energyRateDetailList.size());
+		return Result.OK(page);
 	}
 
     /**
@@ -158,20 +188,77 @@ public class EnergyRateController extends JeecgController<EnergyRate, IEnergyRat
     //@RequiresPermissions("org.jeecg.modules:base_energy_rate:exportXls")
     @RequestMapping(value = "/exportXls")
     public ModelAndView exportXls(HttpServletRequest request, EnergyRate energyRate) {
-        return super.exportXls(request, energyRate, EnergyRate.class, "能源费率");
+      // Step.1 组装查询条件查询数据
+      QueryWrapper<EnergyRate> queryWrapper = QueryGenerator.initQueryWrapper(energyRate, request.getParameterMap());
+      LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+
+     //配置选中数据查询条件
+      String selections = request.getParameter("selections");
+      if(oConvertUtils.isNotEmpty(selections)) {
+           List<String> selectionList = Arrays.asList(selections.split(","));
+           queryWrapper.in("id",selectionList);
+      }
+      //Step.2 获取导出数据
+      List<EnergyRate> energyRateList = energyRateService.list(queryWrapper);
+
+      // Step.3 组装pageList
+      List<EnergyRatePage> pageList = new ArrayList<EnergyRatePage>();
+      for (EnergyRate main : energyRateList) {
+          EnergyRatePage vo = new EnergyRatePage();
+          BeanUtils.copyProperties(main, vo);
+          List<EnergyRateDetail> energyRateDetailList = energyRateDetailService.selectByMainId(main.getId());
+          vo.setEnergyRateDetailList(energyRateDetailList);
+          pageList.add(vo);
+      }
+
+      // Step.4 AutoPoi 导出Excel
+      ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
+      mv.addObject(NormalExcelConstants.FILE_NAME, "能源费率列表");
+      mv.addObject(NormalExcelConstants.CLASS, EnergyRatePage.class);
+      mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("能源费率数据", "导出人:"+sysUser.getRealname(), "base_energy_rate"));
+      mv.addObject(NormalExcelConstants.DATA_LIST, pageList);
+      return mv;
     }
 
     /**
-      * 通过excel导入数据
+    * 通过excel导入数据
     *
     * @param request
     * @param response
     * @return
     */
-    //@RequiresPermissions("base_energy_rate:importExcel")
+    //@RequiresPermissions("org.jeecg.modules:base_energy_rate:importExcel")
     @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
     public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
-        return super.importExcel(request, response, EnergyRate.class);
+      MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
+      Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
+      for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
+          // 获取上传文件对象
+          MultipartFile file = entity.getValue();
+          ImportParams params = new ImportParams();
+          params.setTitleRows(2);
+          params.setHeadRows(1);
+          params.setNeedSave(true);
+          try {
+              List<EnergyRatePage> list = ExcelImportUtil.importExcel(file.getInputStream(), EnergyRatePage.class, params);
+              for (EnergyRatePage page : list) {
+                  EnergyRate po = new EnergyRate();
+                  BeanUtils.copyProperties(page, po);
+                  energyRateService.saveMain(po, page.getEnergyRateDetailList());
+              }
+              return Result.OK("文件导入成功!数据行数:" + list.size());
+          } catch (Exception e) {
+              log.error(e.getMessage(),e);
+              return Result.error("文件导入失败:"+e.getMessage());
+          } finally {
+              try {
+                  file.getInputStream().close();
+              } catch (IOException e) {
+                  e.printStackTrace();
+              }
+          }
+      }
+      return Result.OK("文件导入失败!");
     }
 
 }

+ 13 - 18
module_base/src/main/java/org/jeecg/modules/energyRate/entity/EnergyRate.java

@@ -3,7 +3,6 @@ package org.jeecg.modules.energyRate.entity;
 import java.io.Serializable;
 import java.io.UnsupportedEncodingException;
 import java.util.Date;
-import java.math.BigDecimal;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -15,51 +14,47 @@ import org.jeecgframework.poi.excel.annotation.Excel;
 import org.jeecg.common.aspect.annotation.Dict;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
 
 /**
- * @Description: 能源费率
+ * @Description: base_energy_rate
  * @Author: jeecg-boot
  * @Date:   2024-01-23
  * @Version: V1.0
  */
+@ApiModel(value="base_energy_rate对象", description="能源费率")
 @Data
 @TableName("base_energy_rate")
-@Accessors(chain = true)
-@EqualsAndHashCode(callSuper = false)
-@ApiModel(value="base_energy_rate对象", description="能源费率")
 public class EnergyRate implements Serializable {
     private static final long serialVersionUID = 1L;
 
 	/**能源费率ID*/
-	@Excel(name = "能源费率ID", width = 15)
+	@Excel(name = "能源费率ID")
     @ApiModelProperty(value = "能源费率ID")
     private String id;
 	/**创建者*/
     @ApiModelProperty(value = "创建者")
-    private String createBy;
+    private java.lang.String createBy;
 	/**创建时间*/
 	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
     @DateTimeFormat(pattern="yyyy-MM-dd")
     @ApiModelProperty(value = "创建时间")
-    private Date createTime;
+    private java.util.Date createTime;
 	/**更新者*/
     @ApiModelProperty(value = "更新者")
-    private String updateBy;
+    private java.lang.String updateBy;
 	/**更新时间*/
 	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
     @DateTimeFormat(pattern="yyyy-MM-dd")
     @ApiModelProperty(value = "更新时间")
-    private Date updateTime;
+    private java.util.Date updateTime;
 	/**备注*/
 	@Excel(name = "备注", width = 15)
     @ApiModelProperty(value = "备注")
-    private String remark;
+    private java.lang.String remark;
 	/**名称*/
 	@Excel(name = "名称", width = 15)
     @ApiModelProperty(value = "名称")
-    private String name;
+    private java.lang.String name;
 	/**能源分类ID*/
 	@Excel(name = "能源分类ID", width = 15)
     @ApiModelProperty(value = "能源分类ID")
@@ -67,21 +62,21 @@ public class EnergyRate implements Serializable {
 	/**费率类型:分时费率、阶梯费率*/
 	@Excel(name = "费率类型:分时费率、阶梯费率", width = 15)
     @ApiModelProperty(value = "费率类型:分时费率、阶梯费率")
-    private String ratetype;
+    private java.lang.String ratetype;
 	/**单位*/
 	@Excel(name = "单位", width = 15)
     @ApiModelProperty(value = "单位")
-    private String rateunit;
+    private java.lang.String rateunit;
 	/**费率有效期开始*/
 	@Excel(name = "费率有效期开始", width = 15, format = "yyyy-MM-dd")
 	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
     @DateTimeFormat(pattern="yyyy-MM-dd")
     @ApiModelProperty(value = "费率有效期开始")
-    private Date begintime;
+    private java.util.Date begintime;
 	/**费率有效期结束*/
 	@Excel(name = "费率有效期结束", width = 15, format = "yyyy-MM-dd")
 	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
     @DateTimeFormat(pattern="yyyy-MM-dd")
     @ApiModelProperty(value = "费率有效期结束")
-    private Date endtime;
+    private java.util.Date endtime;
 }

+ 12 - 18
module_base/src/main/java/org/jeecg/modules/energyRateDetail/entity/EnergyRateDetail.java

@@ -1,9 +1,6 @@
-package org.jeecg.modules.energyRateDetail.entity;
+package org.jeecg.modules.energyRate.entity;
 
 import java.io.Serializable;
-import java.io.UnsupportedEncodingException;
-import java.util.Date;
-import java.math.BigDecimal;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -12,32 +9,29 @@ import lombok.Data;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import org.springframework.format.annotation.DateTimeFormat;
 import org.jeecgframework.poi.excel.annotation.Excel;
+import java.util.Date;
 import org.jeecg.common.aspect.annotation.Dict;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.Accessors;
+import java.io.UnsupportedEncodingException;
 
 /**
- * @Description: 能源费率子表
+ * @Description: base_energy_rate_detail
  * @Author: jeecg-boot
  * @Date:   2024-01-23
  * @Version: V1.0
  */
+@ApiModel(value="base_energy_rate_detail对象", description="能源费率子表")
 @Data
 @TableName("base_energy_rate_detail")
-@Accessors(chain = true)
-@EqualsAndHashCode(callSuper = false)
-@ApiModel(value="base_energy_rate_detail对象", description="能源费率子表")
 public class EnergyRateDetail implements Serializable {
     private static final long serialVersionUID = 1L;
 
 	/**能源费率明细ID*/
-	@Excel(name = "能源费率明细ID", width = 15)
+	@Excel(name = "能源费率明细ID")
     @ApiModelProperty(value = "能源费率明细ID")
     private String id;
 	/**能源费率ID*/
-	@Excel(name = "能源费率ID", width = 15)
     @ApiModelProperty(value = "能源费率ID")
     private String energyrateid;
 	/**分时开始时间*/
@@ -45,27 +39,27 @@ public class EnergyRateDetail implements Serializable {
 	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
     @DateTimeFormat(pattern="yyyy-MM-dd")
     @ApiModelProperty(value = "分时开始时间")
-    private Date begintime;
+    private java.util.Date begintime;
 	/**分时结束时间*/
 	@Excel(name = "分时结束时间", width = 15, format = "yyyy-MM-dd")
 	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
     @DateTimeFormat(pattern="yyyy-MM-dd")
     @ApiModelProperty(value = "分时结束时间")
-    private Date endtime;
+    private java.util.Date endtime;
 	/**峰平谷:尖、峰、谷、平*/
 	@Excel(name = "峰平谷:尖、峰、谷、平", width = 15)
     @ApiModelProperty(value = "峰平谷:尖、峰、谷、平")
-    private String pandv;
+    private java.lang.String pandv;
 	/**价格*/
 	@Excel(name = "价格", width = 15)
     @ApiModelProperty(value = "价格")
-    private BigDecimal price;
+    private java.math.BigDecimal price;
 	/**起始量*/
 	@Excel(name = "起始量", width = 15)
     @ApiModelProperty(value = "起始量")
-    private Double beginamount;
+    private java.lang.Double beginamount;
 	/**结束量*/
 	@Excel(name = "结束量", width = 15)
     @ApiModelProperty(value = "结束量")
-    private Double endamount;
+    private java.lang.Double endamount;
 }