123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278 |
- #include "ItemData/ItemData.h"
- #include "LHQLogAPI.h"
- ItemData::ItemData()
- {
- /* 创建8个List */
- for(int i = 0; i < 8; ++i)
- {
- QList<OneItem*>* list = new QList<OneItem*>;
- m_mapItem.insert(i, list);
- }
- }
- ItemData::~ItemData()
- {
- // for(auto it = m_mapItem.begin(); it != m_mapItem.end(); ++it)
- // {
- // for(auto it1 = it.value()->begin(); it1 != it.value()->end(); ++it1)
- // {
- // delete *it1;
- // }
- // it.value()->clear();
- // delete it.value();
- // }
- // m_mapItem.clear();
- }
- /* 添加一项计划 */
- void ItemData::addOneItem(int week, OneItem* item)
- {
- if(m_mapItem.find(week) == m_mapItem.end())
- {
- return;
- }
- m_mapItem[week]->append(item);
- m_isUpdate = true;
- }
- /* 删除一项计划 */
- void ItemData::deleteOneItem(int week, int num)
- {
- if(m_mapItem.find(week) == m_mapItem.end())
- {
- return;
- }
- auto list = m_mapItem[week];
- for(auto& it : *list)
- {
- if(it->getNum() == num)
- {
- auto tmpPtr = it;
- list->removeOne(it);
- delete tmpPtr;
- break;
- }
- }
- m_isUpdate = true;
- }
- /* 清空一天的计划 */
- void ItemData::clearOneDay(int week)
- {
- if(m_mapItem.find(week) == m_mapItem.end())
- {
- return;
- }
- auto list = m_mapItem[week];
- for(auto it = list->begin(); it != list->end(); ++it)
- {
- delete *it;
- }
- list->clear();
- m_isUpdate = true;
- }
- /* 清空所有的计划数据 */
- void ItemData::clearAllItem()
- {
- for(auto it = m_mapItem.begin(); it != m_mapItem.end(); ++it)
- {
- for(auto it1 = it.value()->begin(); it1 != it.value()->end(); ++it1)
- {
- delete *it1;
- }
- it.value()->clear();
- }
- m_isUpdate = true;
- }
- /* 查找有没有这个项 */
- bool ItemData::findItem(OneItem* item)
- {
- for(auto it = m_mapItem.begin(); it != m_mapItem.end(); ++it)
- {
- QList<OneItem*>* list = it.value();
- for(const auto& item1 : *list)
- {
- if(item1 == item)
- {
- return true;
- }
- }
- }
- return false;
- }
- /* 查找有没有这个项 */
- bool ItemData::findItem(int week, OneItem* item)
- {
- if(m_mapItem.find(week) == m_mapItem.end())
- {
- return false;
- }
- QList<OneItem*>* list = m_mapItem[week];
- for(const auto& it : *list)
- {
- if(it == item)
- {
- return true;
- }
- }
- return false;
- }
- /* 获取一天的容器 */
- QList<OneItem*>* ItemData::getOneDay(int week)
- {
- if(m_mapItem.find(week) == m_mapItem.end())
- {
- return nullptr;
- }
- return m_mapItem[week];
- }
- /* 获取一天的计划 */
- QList<ExecPlanItemInfo> ItemData::getOneDayExecPlan(int week)
- {
- if(m_mapItem.find(week) == m_mapItem.end())
- {
- QList<ExecPlanItemInfo> list;
- list.clear();
- return list;
- }
- auto list = m_mapItem[week];
- QList<ExecPlanItemInfo> list1;
- for(const auto& it : *list)
- {
- ExecPlanItemInfo info;
- info.devName = it->getDevName();
- info.actionID = it->getActionNum();
- info.actionName = it->getActionName();
- info.execTime = it->getExecTime();
- info.date = it->getDate();
- info.WeekDay = it->getWeekDay();
- list1.append(info);
- }
- return list1;
- }
- /* 新增判断是否有重复 */
- bool ItemData::judgeTimeRepetitionWithAdd(int weekDay, const QString& devName, const QTime& time)
- {
- /* 先查找周几对应的列表 */
- if(m_mapItem.find(weekDay) == m_mapItem.end())
- {
- return false;
- }
- auto list = m_mapItem[weekDay];
- for(const auto& it : *list)
- {
- if(it->getDevName() == devName)
- {
- if(it->getExecTime() == time)
- {
- return true;
- }
- }
- }
- /* 所有设备都判断完了,没有相同的 */
- return false;
- }
- bool ItemData::judgeDateTimeRepetitionWithAdd(int weekDay, const QString& devName, const QDate& date, const QTime& time)
- {
- /* 先查找周几对应的列表 */
- if(m_mapItem.find(weekDay) == m_mapItem.end())
- {
- return false;
- }
- auto list = m_mapItem[weekDay];
- for(const auto& it : *list)
- {
- if(it->getDevName() == devName)
- {
- if(it->getDate() == date)
- {
- if(it->getExecTime() == time)
- {
- return true;
- }
- }
- }
- }
- /* 所有设备都判断完了,没有相同的 */
- return false;
- }
- /* 判断已有的项修改时间后和其他项是否重复 */
- bool ItemData::judgeTimeRepetitionWithEdit(int weekDay, OneItem* item, const QTime& newTime)
- {
- if(m_mapItem.find(weekDay) == m_mapItem.end())
- {
- return false;
- }
- auto list = m_mapItem[weekDay];
- for(const auto& it : *list)
- {
- /* 先判断名称是否相等 */
- if(it->getDevName() == item->getDevName())
- {
- /* 判断是否是同一个项 */
- if(it->getUUID() == item->getUUID())
- {
- continue;
- }
- /* 判断时间是否相同 */
- if(it->getExecTime() == newTime)
- {
- return true;
- }
- }
- }
- /* 所有设备都判断完了 */
- return false;
- }
- /* 判断特殊日的已有项修改时间后和其他项是否重复 */
- bool ItemData::judgeDateTimeRepetitionWithEdit(int weekDay, OneItem* item, const QDate& newDate, const QTime& newTime)
- {
- if(m_mapItem.find(weekDay) == m_mapItem.end())
- {
- return false;
- }
- auto list = m_mapItem[weekDay];
- for(const auto& it : *list)
- {
- /* 先判断名称是否相等 */
- if(it->getDevName() == item->getDevName())
- {
- /* 判断是否是同一个项 */
- if(it->getUUID() == item->getUUID())
- {
- continue;
- }
- /* 判断日期是否相等 */
- if(it->getDate() == newDate)
- {
- /* 判断时间是否相同 */
- if(it->getExecTime() == newTime)
- {
- return true;
- }
- }
- }
- }
- /* 所有设备都判断完了 */
- return false;
- }
|