package com.fgkj.services;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
import com.fgkj.actions.ActionUtil;
|
import com.fgkj.dao.BaseDAO;
|
import com.fgkj.dao.BaseDAOFactory;
|
import com.fgkj.dao.BattTestData;
|
import com.fgkj.dao.impl.BattDischarge_planImpl;
|
import com.fgkj.dao.impl.BattInfImpl;
|
import com.fgkj.dto.BattDischarge_plan;
|
import com.fgkj.dto.BattInf;
|
import com.fgkj.dto.ServiceModel;
|
import com.fgkj.dto.User_inf;
|
|
public class BattDischarge_planService {
|
private BaseDAO dao;
|
private BaseDAO daoB;
|
private ServiceModel model;
|
|
public BattDischarge_planService() {
|
dao = BaseDAOFactory.getBaseDAO(BaseDAO.BATTDISCHARGE_PLAN);
|
daoB= BaseDAOFactory.getBaseDAO(BaseDAO.BATTINF);
|
model = new ServiceModel();;
|
}
|
|
public ServiceModel add(Object obj){
|
Boolean bl=dao.add(obj);
|
if(bl){
|
model.setCode(1);
|
model.setMsg("添加成功!");
|
}else{
|
model.setCode(0);
|
model.setMsg("添加失败!");
|
}
|
return model;
|
}
|
//8.1批量添加电池计划
|
public ServiceModel addPro(Object obj){
|
Boolean bl=((BattDischarge_planImpl)dao).addPro(obj);
|
if(bl){
|
model.setCode(1);
|
model.setMsg("添加成功!");
|
}else{
|
model.setCode(0);
|
model.setMsg("添加失败!");
|
}
|
return model;
|
}
|
//8.1批量修改放电计划的开始时间
|
public ServiceModel updatePro(Object obj){
|
Boolean bl=((BattDischarge_planImpl)dao).updatePro(obj);
|
if(bl){
|
model.setCode(1);
|
model.setMsg("修改成功!");
|
}else{
|
model.setCode(0);
|
model.setMsg("修改失败!");
|
}
|
return model;
|
}
|
|
public ServiceModel del(Object obj){
|
Boolean bl=dao.del(obj);
|
if(bl){
|
model.setCode(1);
|
model.setMsg("删除成功!");
|
}else{
|
model.setCode(0);
|
model.setMsg("删除失败!");
|
}
|
return model;
|
}
|
public ServiceModel searchAll(){
|
List list=dao.searchAll();
|
if(list!=null&&list.size()>0){
|
model.setCode(1);
|
model.setMsg("查询成功!");
|
model.setData(list);
|
}else{
|
model.setCode(0);
|
model.setMsg("查询失败!");
|
}
|
return model;
|
}
|
|
//8.1批量添加作业计划/修改作业计划时时先检测计划的可行性
|
/*原则:
|
*1.同机房(或设备)同一时间只能一组电池组放电
|
*2.同机房(或设备)内电池组放电时间相隔至少3天*/
|
public ServiceModel judgePlan(Object obj){
|
List<BattDischarge_plan> listAll=(List<BattDischarge_plan>) obj;
|
List<BattDischarge_plan> list = new ArrayList();//存放满足计划设定条件的可行计划
|
if(listAll!=null&&listAll.size()>0){
|
for(int i=0;i<listAll.size();i++){
|
int flag=((BattDischarge_planImpl)dao).judgePlan(listAll.get(i));
|
if(flag==1){//判断通过是否数据库存在同机房放电计划,满足条件
|
if(list.size()>0){
|
int judge=judgeList(listAll.get(i), list);
|
if(judge==1){////判断通过时间相隔3天,满足条件
|
list.add(listAll.get(i));
|
}else{
|
continue;
|
}
|
}else{
|
list.add(listAll.get(i));
|
}
|
|
}
|
}
|
}
|
if(list!=null&&list.size()>0){
|
model.setCode(1);
|
model.setData(list);
|
model.setSum(list.size());//可以添加的总数
|
}else{
|
model.setCode(0);
|
model.setSum(0);
|
}
|
//System.out.println(model);
|
return model;
|
}
|
|
//放电计划中添加计划时,有没有出现同机房存在电池组有计划
|
public int judgeList(Object obj1,Object obj2){
|
BattDischarge_plan bplan=(BattDischarge_plan) obj1;
|
List<BattDischarge_plan> list=(List<BattDischarge_plan>) obj2;
|
int flag=1;
|
if(list!=null&&list.size()>0){
|
for(int i=0;i<list.size();i++){
|
|
if(bplan.getNote().equals(list.get(i).getNote())){
|
//System.out.println("1:"+bplan.getNote()+" "+list.get(i).getNote());
|
int hours=ActionUtil.HoursBetween(bplan.getDischarge_starttime(), list.get(i).getDischarge_starttime());
|
if(hours<BattTestData.hoursBetween){
|
flag=0;
|
break;
|
}
|
}
|
}
|
}
|
return flag;
|
}
|
|
//8.1放电计划查询
|
public ServiceModel serchByCondition(Object obj){
|
List list=dao.serchByCondition(obj);
|
if(list!=null&&list.size()>0){
|
model.setCode(1);
|
model.setMsg("查询成功!");
|
model.setData(list);
|
}else{
|
model.setCode(0);
|
model.setMsg("查询失败!");
|
}
|
return model;
|
}
|
//8.1放电计划管理中查询
|
public ServiceModel serchBattgroupinfo(Object obj){
|
List<BattInf> list=((BattInfImpl)daoB).serchBattgroupinfo(obj);
|
if(list!=null&&list.size()>0){
|
model.setCode(1);
|
model.setMsg("查询成功!");
|
model.setData(list);
|
}else{
|
model.setCode(0);
|
model.setMsg("查询失败!");
|
}
|
return model;
|
}
|
//新版添加放电计划查询<排除设置过放电计划的电池组>
|
public ServiceModel serchBattPlan(Object obj){
|
List list=((BattInfImpl)daoB).serchBattPlan(obj);
|
if(list!=null&&list.size()>0){
|
model.setCode(1);
|
model.setMsg("查询成功!");
|
model.setData(list);
|
}else{
|
model.setCode(0);
|
model.setMsg("查询失败!");
|
}
|
return model;
|
}
|
//8.1查询未开始放电的放电计划总数
|
public ServiceModel searchNums(Object obj) {
|
int nums= ((BattDischarge_planImpl)dao).searchNums(obj);
|
model.setSum(nums);
|
return model;
|
}
|
//8.1放电计划管理中饼状图(放电计划统计查询)
|
/*BattIndexInFbs:未放电
|
*Preset_time:放电延时
|
*Preset_cap: 放电完成
|
*Preset_monvol:放电进行中
|
*Preset_groupvol:放电失败
|
*num: 总数*/
|
public ServiceModel searchState(Object obj){
|
List<BattDischarge_plan> list=((BattDischarge_planImpl)dao).searchState(obj);
|
BattDischarge_plan bplan=new BattDischarge_plan();//存放返回各种放电计划状态对应的值
|
bplan.setBattIndexInFbs(0);
|
bplan.setPreset_time(0);
|
bplan.setPreset_cap(0f);
|
bplan.setPreset_monvol(0f);
|
bplan.setPreset_groupvol(0f);
|
int test_plan0=0;
|
int test_plan1=0;
|
int test_plan2=0;
|
int test_plan3=0;
|
int test_plan4=0;
|
if(list!=null && list.size()>0){
|
for(int i=0;i<list.size();i++){
|
if(list.get(i).getDischarge_state()==BattTestData.test_plan0){//未放电
|
test_plan0+=list.get(i).getNum();
|
bplan.setBattIndexInFbs(test_plan0);
|
}
|
if(list.get(i).getDischarge_state()==BattTestData.test_plan1){//放电延时
|
test_plan1+=list.get(i).getNum();
|
bplan.setPreset_time(test_plan1);
|
}
|
if(list.get(i).getDischarge_state()==BattTestData.test_plan2){//放电完成
|
test_plan2+=list.get(i).getNum();
|
bplan.setPreset_cap((float)test_plan2);
|
}
|
if(list.get(i).getDischarge_state()==BattTestData.test_plan3){//放电进行中
|
test_plan3+=list.get(i).getNum();
|
bplan.setPreset_monvol((float)test_plan3);
|
}
|
if(list.get(i).getDischarge_state()==BattTestData.test_plan4){//放电失败
|
test_plan4+=list.get(i).getNum();
|
bplan.setPreset_groupvol((float)test_plan4);
|
}
|
|
}
|
int sum=(int) (bplan.getBattIndexInFbs()+bplan.getPreset_time()+bplan.getPreset_cap()
|
+bplan.getPreset_monvol()+bplan.getPreset_groupvol());//总数
|
model.setCode(1);
|
model.setData(bplan);
|
model.setMsg("查询成功!");
|
model.setSum(sum);//总数
|
}else{
|
model.setCode(0);
|
model.setMsg("查询失败!");
|
}
|
//System.out.println(model.getData());
|
return model;
|
}
|
|
public static void main(String[] args) {
|
BattDischarge_planService service = new BattDischarge_planService();
|
User_inf uinf=new User_inf();
|
uinf.setUId(1038);
|
service.serchBattgroupinfo(uinf);
|
}
|
}
|