Browse Source

新增能源计划-按时间段新增接口

lw 1 year ago
parent
commit
0d4400c389

+ 16 - 0
module_base/src/main/java/org/jeecg/modules/energyPlan/controller/EnergyPlanController.java

@@ -1,10 +1,12 @@
 package org.jeecg.modules.energyPlan.controller;
 
 import java.util.Arrays;
+import java.util.Date;
 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.modules.energyPlan.dto.TimeRangeEnergyPlan;
 import org.jeecg.modules.energyPlan.entity.EnergyPlan;
 import org.jeecg.modules.energyPlan.service.IEnergyPlanService;
 
@@ -72,6 +74,20 @@ public class EnergyPlanController extends JeecgController<EnergyPlan, IEnergyPla
 		return Result.OK("添加成功!");
 	}
 
+	 /**
+	  *   添加
+	  *
+	  * @param rangeEnergyPlan
+	  * @return
+	  */
+	 @AutoLog(value = "能源计划-时间段新增")
+	 @ApiOperation(value="能源计划-时间段新增", notes="能源计划-时间段新增")
+	 //@RequiresPermissions("org.jeecg.modules:base_energy_pplan:add")
+	 @PostMapping(value = "/rangeAdd")
+	 public Result<String> rangeAdd(@RequestBody TimeRangeEnergyPlan rangeEnergyPlan) {
+		 return energyPlanService.rangeAdd(rangeEnergyPlan);
+	 }
+
 	/**
 	 *  编辑
 	 *

+ 23 - 0
module_base/src/main/java/org/jeecg/modules/energyPlan/dto/TimeRangeEnergyPlan.java

@@ -0,0 +1,23 @@
+package org.jeecg.modules.energyPlan.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.*;
+import org.jeecg.modules.energyPlan.entity.EnergyPlan;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class TimeRangeEnergyPlan extends EnergyPlan implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private Date BeginTime;
+    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private Date EndTime;
+}

+ 3 - 0
module_base/src/main/java/org/jeecg/modules/energyPlan/service/IEnergyPlanService.java

@@ -1,5 +1,7 @@
 package org.jeecg.modules.energyPlan.service;
 
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.modules.energyPlan.dto.TimeRangeEnergyPlan;
 import org.jeecg.modules.energyPlan.entity.EnergyPlan;
 import com.baomidou.mybatisplus.extension.service.IService;
 
@@ -11,4 +13,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IEnergyPlanService extends IService<EnergyPlan> {
 
+    Result<String> rangeAdd(TimeRangeEnergyPlan rangeEnergyPlan);
 }

+ 47 - 0
module_base/src/main/java/org/jeecg/modules/energyPlan/service/impl/EnergyPlanServiceImpl.java

@@ -1,12 +1,23 @@
 package org.jeecg.modules.energyPlan.service.impl;
 
+import org.apache.catalina.core.ApplicationContext;
+import org.apache.naming.factory.BeanFactory;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.modules.energyPlan.dto.TimeRangeEnergyPlan;
 import org.jeecg.modules.energyPlan.entity.EnergyPlan;
 import org.jeecg.modules.energyPlan.mapper.EnergyPlanMapper;
 import org.jeecg.modules.energyPlan.service.IEnergyPlanService;
+import org.springframework.aop.framework.*;
+import org.springframework.beans.BeanUtils;
+import org.springframework.context.annotation.EnableAspectJAutoProxy;
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+
 /**
  * @Description: 能源计划
  * @Author: jeecg-boot
@@ -14,6 +25,42 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  * @Version: V1.0
  */
 @Service
+@EnableAspectJAutoProxy(exposeProxy = true)
 public class EnergyPlanServiceImpl extends ServiceImpl<EnergyPlanMapper, EnergyPlan> implements IEnergyPlanService {
 
+    @Override
+    public Result<String> rangeAdd(TimeRangeEnergyPlan rangeEnergyPlan) {
+        Date beginTime = rangeEnergyPlan.getBeginTime();
+        Date endTime = rangeEnergyPlan.getEndTime();
+        if (beginTime.after(endTime)) return Result.error("开始日期大于结束日期,请检查!");
+
+        long diffInMillies = endTime.getTime() - beginTime.getTime();
+        int diffDay = (int) ((diffInMillies / (24 * 60 * 60 * 1000)) + 1);
+
+        Calendar beginTimeInstance = Calendar.getInstance();
+        beginTimeInstance.setTime(beginTime);
+
+        Calendar endTimeInstance = Calendar.getInstance();
+        endTimeInstance.setTime(endTime);
+
+        Double planValue = rangeEnergyPlan.getPlanvalue();
+        double avgValue = planValue / diffDay;
+
+        ArrayList<EnergyPlan> energyPlans = new ArrayList<>();
+        int i = diffDay + 1;
+        int mark = 1;
+        while (mark != i) {
+            EnergyPlan energyPlan = new EnergyPlan();
+            BeanUtils.copyProperties(rangeEnergyPlan, energyPlan);
+            energyPlan.setPlandate(beginTimeInstance.getTime());
+            energyPlan.setPlanvalue(avgValue);
+            energyPlans.add(energyPlan);
+            beginTimeInstance.add(Calendar.DAY_OF_MONTH, 1);
+            mark++;
+        }
+        //使用 AopContext.currentProxy(); 必须加注解 @EnableAspectJAutoProxy(exposeProxy = true)
+        IEnergyPlanService service = (IEnergyPlanService) AopContext.currentProxy();
+        service.saveBatch(energyPlans);
+        return Result.OK("添加成功");
+    }
 }

+ 0 - 1
module_cmms/src/main/java/org/jeecg/modules/cmmsSubmissionEquipment/controller/CmmsSubmissionEquipmentController.java

@@ -3,7 +3,6 @@ package org.jeecg.modules.cmmsSubmissionEquipment.controller;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.sun.org.apache.regexp.internal.RE;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;