|
@@ -1,12 +1,23 @@
|
|
package org.jeecg.modules.energyPlan.service.impl;
|
|
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.entity.EnergyPlan;
|
|
import org.jeecg.modules.energyPlan.mapper.EnergyPlanMapper;
|
|
import org.jeecg.modules.energyPlan.mapper.EnergyPlanMapper;
|
|
import org.jeecg.modules.energyPlan.service.IEnergyPlanService;
|
|
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 org.springframework.stereotype.Service;
|
|
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
+import java.util.Calendar;
|
|
|
|
+import java.util.Date;
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* @Description: 能源计划
|
|
* @Description: 能源计划
|
|
* @Author: jeecg-boot
|
|
* @Author: jeecg-boot
|
|
@@ -14,6 +25,42 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
* @Version: V1.0
|
|
* @Version: V1.0
|
|
*/
|
|
*/
|
|
@Service
|
|
@Service
|
|
|
|
+@EnableAspectJAutoProxy(exposeProxy = true)
|
|
public class EnergyPlanServiceImpl extends ServiceImpl<EnergyPlanMapper, EnergyPlan> implements IEnergyPlanService {
|
|
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("添加成功");
|
|
|
|
+ }
|
|
}
|
|
}
|