123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649 |
- package com.bizmatics.service.impl;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.core.toolkit.Wrappers;
- import com.bizmatics.common.core.bean.CommonPage;
- import com.bizmatics.common.mvc.base.AbstractCrudService;
- import com.bizmatics.model.*;
- import com.bizmatics.model.system.SysUser;
- import com.bizmatics.model.vo.*;
- import com.bizmatics.persistence.mapper.DevopsWorkOrderMapper;
- import com.bizmatics.service.*;
- import com.bizmatics.service.util.SecurityUtils;
- import com.bizmatics.service.vo.CommonIcoVO;
- import org.junit.jupiter.api.Order;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.*;
- /**
- * 运维管理-工单管理
- *
- * @author ya
- * @since 2021-10-21
- */
- @Service
- public class DevopsWorkOrderServiceImpl extends AbstractCrudService<DevopsWorkOrderMapper, DevopsWorkOrder> implements DevopsWorkOrderService {
- @Autowired
- private DevopsOrderDeviceService devopsOrderDeviceService;
- @Autowired
- private DevopsOrderInspectorsService devopsOrderInspectorsService;
- @Autowired
- private PatrolInspectionRecordService patrolInspectionRecordService;
- @Autowired
- private PatrolRecordRouteService patrolRecordRouteService;
- @Autowired
- private PatrolInspectorsService patrolInspectorsService;
- @Autowired
- private PatrolInspectionTeamService patrolInspectionTeamService;
- @Override
- public void devopsWorkOrderAdd(DevopsWorkOrderVo devopsWorkOrderVo) {
- DevopsWorkOrder devopsWorkOrder = new DevopsWorkOrder();
- SysUser user = SecurityUtils.getLoginUser().getUser();
- devopsWorkOrder.setWorkOrder(devopsWorkOrderVo.getWorkOrder());
- devopsWorkOrder.setSiteId(devopsWorkOrderVo.getSiteId());
- devopsWorkOrder.setWorkOrderType(devopsWorkOrderVo.getWorkOrderType());
- devopsWorkOrder.setExpectedCompletionTime(devopsWorkOrderVo.getExpectedCompletionTime());
- devopsWorkOrder.setTeamId(devopsWorkOrderVo.getTeamId());
- devopsWorkOrder.setGenerationMode(devopsWorkOrderVo.getGenerationMode());
- devopsWorkOrder.setWorkOrderStatus(3);
- devopsWorkOrder.setPicturePathOne(devopsWorkOrderVo.getPicturePathOne());
- devopsWorkOrder.setPicturePathTwo(devopsWorkOrderVo.getPicturePathTwo());
- devopsWorkOrder.setPicturePathThree(devopsWorkOrderVo.getPicturePathThree());
- devopsWorkOrder.setPicturePathFour(devopsWorkOrderVo.getPicturePathFour());
- devopsWorkOrder.setPicturePathFive(devopsWorkOrderVo.getPicturePathFive());
- devopsWorkOrder.setPicturePathSix(devopsWorkOrderVo.getPicturePathSix());
- devopsWorkOrder.setCreator(user.getUserName());
- devopsWorkOrder.setCreateTime(new Date());
- devopsWorkOrder.setStatus(1);
- this.save(devopsWorkOrder);
- Integer devopsWorkOrderId = devopsWorkOrder.getId();
- String[] inspectionDeviceIdList = devopsWorkOrderVo.getInspectionDeviceId().split(",");
- String[] inspectorsIdList = devopsWorkOrderVo.getInspectorsId().split(",");
- for (int i = 0; i < inspectionDeviceIdList.length; i++) {
- DevopsOrderDevice devopsOrderDevice = new DevopsOrderDevice();
- devopsOrderDevice.setWorkOrderId(devopsWorkOrderId);
- devopsOrderDevice.setInspectionDeviceId(Integer.parseInt(inspectionDeviceIdList[i]));
- devopsOrderDevice.setCreator(user.getUserName());
- devopsOrderDevice.setCreateTime(new Date());
- devopsOrderDevice.setStatus(1);
- devopsOrderDeviceService.save(devopsOrderDevice);
- }
- for (int i = 0; i < inspectorsIdList.length; i++) {
- DevopsOrderInspectors devopsOrderInspectors = new DevopsOrderInspectors();
- devopsOrderInspectors.setWorkOrderId(devopsWorkOrderId);
- devopsOrderInspectors.setInspectorsId(Integer.parseInt(inspectorsIdList[i]));
- devopsOrderInspectors.setCreator(user.getUserName());
- devopsOrderInspectors.setCreateTime(new Date());
- devopsOrderInspectors.setStatus(1);
- devopsOrderInspectorsService.save(devopsOrderInspectors);
- }
- }
- @Override
- public void devopsWorkOrderUpdate(DevopsWorkOrderVo devopsWorkOrderVo) {
- SysUser user = SecurityUtils.getLoginUser().getUser();
- DevopsWorkOrder devopsWorkOrder = new DevopsWorkOrder();
- devopsWorkOrder.setId(devopsWorkOrderVo.getId());
- devopsWorkOrder.setWorkOrder(devopsWorkOrderVo.getWorkOrder());
- devopsWorkOrder.setWorkOrderType(devopsWorkOrderVo.getWorkOrderType());
- devopsWorkOrder.setExpectedCompletionTime(devopsWorkOrderVo.getExpectedCompletionTime());
- devopsWorkOrder.setTeamId(devopsWorkOrderVo.getTeamId());
- devopsWorkOrder.setGenerationMode(devopsWorkOrderVo.getGenerationMode());
- devopsWorkOrder.setWorkOrderStatus(devopsWorkOrderVo.getWorkOrderStatus());
- devopsWorkOrder.setPicturePathOne(devopsWorkOrderVo.getPicturePathOne());
- devopsWorkOrder.setPicturePathTwo(devopsWorkOrderVo.getPicturePathTwo());
- devopsWorkOrder.setPicturePathThree(devopsWorkOrderVo.getPicturePathThree());
- devopsWorkOrder.setPicturePathFour(devopsWorkOrderVo.getPicturePathFour());
- devopsWorkOrder.setPicturePathFive(devopsWorkOrderVo.getPicturePathFive());
- devopsWorkOrder.setPicturePathSix(devopsWorkOrderVo.getPicturePathSix());
- this.updateById(devopsWorkOrder);
- Integer devopsWorkOrderId = devopsWorkOrder.getId();
- String[] inspectionDeviceIdList = devopsWorkOrderVo.getInspectionDeviceId().split(",");
- String[] inspectorsIdList = devopsWorkOrderVo.getInspectorsId().split(",");
- if (inspectionDeviceIdList.length > 0) {
- for (int i = 0; i < inspectionDeviceIdList.length; i++) {
- DevopsOrderDevice devopsOrderDevice = new DevopsOrderDevice();
- devopsOrderDevice.setWorkOrderId(devopsWorkOrderId);
- devopsOrderDevice.setInspectionDeviceId(Integer.parseInt(inspectionDeviceIdList[i]));
- devopsOrderDevice.setCreator(user.getUserName());
- devopsOrderDevice.setCreateTime(new Date());
- devopsOrderDevice.setStatus(1);
- devopsOrderDeviceService.save(devopsOrderDevice);
- }
- }
- if (inspectorsIdList.length > 0) {
- for (int i = 0; i < inspectorsIdList.length; i++) {
- DevopsOrderInspectors devopsOrderInspectors = new DevopsOrderInspectors();
- devopsOrderInspectors.setWorkOrderId(devopsWorkOrderId);
- devopsOrderInspectors.setInspectorsId(Integer.parseInt(inspectorsIdList[i]));
- devopsOrderInspectors.setCreator(user.getUserName());
- devopsOrderInspectors.setCreateTime(new Date());
- devopsOrderInspectors.setStatus(1);
- devopsOrderInspectorsService.save(devopsOrderInspectors);
- }
- }
- }
- @Override
- public void devopsWorkOrderDel(Integer id) {
- DevopsWorkOrder devopsWorkOrder = new DevopsWorkOrder();
- devopsWorkOrder.setId(id);
- devopsWorkOrder.setStatus(0);
- this.updateById(devopsWorkOrder);
- //巡检设备
- LambdaQueryWrapper<DevopsOrderDevice> queryWrapperOne = Wrappers.lambdaQuery();
- queryWrapperOne.eq(DevopsOrderDevice::getWorkOrderId, id).eq(DevopsOrderDevice::getStatus, 1);
- List<DevopsOrderDevice> devopsOrderDeviceList = devopsOrderDeviceService.list(queryWrapperOne);
- //人员
- LambdaQueryWrapper<DevopsOrderInspectors> queryWrapperTwo = Wrappers.lambdaQuery();
- queryWrapperTwo.eq(DevopsOrderInspectors::getWorkOrderId, id).eq(DevopsOrderInspectors::getStatus, 1);
- List<DevopsOrderInspectors> devopsOrderInspectorsList = devopsOrderInspectorsService.list(queryWrapperTwo);
- if (devopsOrderDeviceList.size() > 0) {
- for (int i = 0; i < devopsOrderDeviceList.size(); i++) {
- DevopsOrderDevice devopsOrderDevice = new DevopsOrderDevice();
- devopsOrderDevice.setId(devopsOrderDeviceList.get(i).getId());
- devopsOrderDevice.setStatus(0);
- devopsOrderDeviceService.updateById(devopsOrderDevice);
- }
- }
- if (devopsOrderInspectorsList.size() > 0) {
- for (int i = 0; i < devopsOrderInspectorsList.size(); i++) {
- DevopsOrderInspectors devopsOrderInspectors = new DevopsOrderInspectors();
- devopsOrderInspectors.setId(devopsOrderInspectorsList.get(i).getId());
- devopsOrderInspectors.setStatus(0);
- devopsOrderInspectorsService.updateById(devopsOrderInspectors);
- }
- }
- }
- @Override
- public void devopsOrderDeviceDel(Integer inspectionDeviceId) {
- DevopsOrderDevice devopsOrderDevice = new DevopsOrderDevice();
- devopsOrderDevice.setId(inspectionDeviceId);
- devopsOrderDevice.setStatus(0);
- devopsOrderDeviceService.updateById(devopsOrderDevice);
- }
- @Override
- public void devopsOrderInspectorsDel(Integer inspectorsId) {
- DevopsOrderInspectors devopsOrderInspectors = new DevopsOrderInspectors();
- devopsOrderInspectors.setId(inspectorsId);
- devopsOrderInspectors.setStatus(0);
- devopsOrderInspectorsService.updateById(devopsOrderInspectors);
- }
- @Override
- public CommonPage<DevopsWorkOrderListVo> devopsWorkOrderList(Integer generationMode, Integer workOrderStatus, Integer siteId, Integer inspectorsId, Integer size, Integer current) {
- List<DevopsWorkOrderListVo> devopsWorkOrderListTwo = new ArrayList<>();
- LambdaQueryWrapper<DevopsOrderInspectors> queryWrapperTwo = Wrappers.lambdaQuery();
- queryWrapperTwo.eq(DevopsOrderInspectors::getInspectorsId, inspectorsId).eq(DevopsOrderInspectors::getStatus, 1);
- List<DevopsOrderInspectors> devopsOrderInspectorsList = devopsOrderInspectorsService.list(queryWrapperTwo);
- List<DevopsWorkOrderListVo> devopsWorkOrderListOne = baseMapper.devopsWorkOrderList(generationMode, workOrderStatus, siteId, devopsOrderInspectorsList, null, 0);
- int total = 0;
- if (devopsWorkOrderListOne.size() > 0) {
- total = devopsWorkOrderListOne.size();
- }
- int startCurrent = (size - 1) * current;
- List<DevopsWorkOrderListVo> devopsWorkOrderList = baseMapper.devopsWorkOrderList(generationMode, workOrderStatus, siteId, devopsOrderInspectorsList, startCurrent, current);
- if (devopsWorkOrderList.size() > 0) {
- List<PatrolInspectorsVo> patrolInspectorsVoList = baseMapper.patrolInspectorsVoList(0);
- for (int i = 0; i < devopsWorkOrderList.size(); i++) {
- String inspectorsNameList = "";
- for (int j = 0; j < patrolInspectorsVoList.size(); j++) {
- if (devopsWorkOrderList.get(i).getId() == patrolInspectorsVoList.get(j).getWorkOrderId()) {
- inspectorsNameList = inspectorsNameList + patrolInspectorsVoList.get(j).getInspectorsName() + ",";
- }
- if (patrolInspectorsVoList.size() - 1 == j) {
- inspectorsNameList = inspectorsNameList.substring(0, inspectorsNameList.length() - 1);
- }
- }
- devopsWorkOrderList.get(i).setInspectorsName(inspectorsNameList);
- // devopsWorkOrderListTwo.set(i, devopsWorkOrderList.get(i));
- }
- }
- return new CommonPage<>(devopsWorkOrderList, total, current, size);
- }
- @Override
- public List<DevopsWorkOrderDetailsVo> devopsWorkOrderDetails(Integer id) {
- List<PatrolRouteContentListVo> patrolRouteContentListVoList = new ArrayList<>();
- List<DevopsWorkOrderDetailsVo> devopsWorkOrderList = baseMapper.devopsWorkOrderDetails(id);
- List<PatrolInspectorsVo> patrolInspectorsList = baseMapper.patrolInspectorsVoList(id);
- List<PatrolInspectionDeviceDetailsVo> PatrolInspectionDeviceList = baseMapper.patrolInspectionDeviceList(id);
- devopsWorkOrderList.get(0).setPatrolInspectionDeviceDetailsVo(PatrolInspectionDeviceList);
- devopsWorkOrderList.get(0).setPatrolInspectorsVo(patrolInspectorsList);
- if (devopsWorkOrderList.get(0).getGenerationMode() == 1) {
- LambdaQueryWrapper<PatrolInspectionRecord> queryWrapper = Wrappers.lambdaQuery();
- queryWrapper.eq(PatrolInspectionRecord::getId, devopsWorkOrderList.get(0).getInspectionRecordId());
- List<PatrolInspectionRecord> patrolInspectionRecordList = patrolInspectionRecordService.list(queryWrapper);
- List<PatrolRouteContentListVo> patrolRouteContentList = baseMapper.patrolRouteContentList(patrolInspectionRecordList.get(0).getSiteId(), patrolInspectionRecordList.get(0).getInspectionSchemeId());
- for (int i = 0; i < patrolRouteContentList.size(); i++) {
- LambdaQueryWrapper<PatrolRecordRoute> queryWrapperTwo = Wrappers.lambdaQuery();
- queryWrapperTwo.eq(PatrolRecordRoute::getInspectionRecordId, patrolInspectionRecordList.get(0).getId())
- .eq(PatrolRecordRoute::getInspectionContentId, patrolRouteContentList.get(i).getInspectionContentId());
- List<PatrolRecordRoute> patrolInspectionSchemeList = patrolRecordRouteService.list(queryWrapperTwo);
- PatrolRouteContentListVo patrolRouteContentListVo = new PatrolRouteContentListVo();
- patrolRouteContentListVo.setId(patrolRouteContentList.get(i).getId());
- patrolRouteContentListVo.setInspectionRouteId(patrolRouteContentList.get(i).getInspectionRouteId());
- patrolRouteContentListVo.setInspectionContentId(patrolRouteContentList.get(i).getInspectionContentId());
- patrolRouteContentListVo.setInspectionContentName(patrolRouteContentList.get(i).getInspectionContentName());
- patrolRouteContentListVo.setInspectionDeviceName(patrolRouteContentList.get(i).getInspectionDeviceName());
- patrolRouteContentListVo.setCreator(patrolRouteContentList.get(i).getCreator());
- patrolRouteContentListVo.setCreateTime(patrolRouteContentList.get(i).getCreateTime());
- patrolRouteContentListVo.setStatus(patrolRouteContentList.get(i).getStatus());
- patrolRouteContentListVo.setPatrolRecordRoute(patrolInspectionSchemeList);
- List inspectionDeviceAbnormalList = new ArrayList();
- for (int j = 0; j < patrolInspectionSchemeList.size(); j++) {
- inspectionDeviceAbnormalList.add(patrolInspectionSchemeList.get(j).getStatus());
- }
- patrolRouteContentListVoList.add(patrolRouteContentListVo);
- }
- }
- devopsWorkOrderList.get(0).setPatrolRouteContentListVoList(patrolRouteContentListVoList);
- return devopsWorkOrderList;
- }
- @Override
- public List<PatrolInspectors> patrolInspectorsDroplist() {
- SysUser user = SecurityUtils.getLoginUser().getUser();
- LambdaQueryWrapper<PatrolInspectors> queryWrapperTwo = Wrappers.lambdaQuery();
- queryWrapperTwo.eq(PatrolInspectors::getStatus, 1)
- .eq(PatrolInspectors::getUserId, user.getUserId());
- List<PatrolInspectors> patrolInspectorsList = patrolInspectorsService.list(queryWrapperTwo);
- return patrolInspectorsList;
- }
- @Override
- public List<PatrolInspectionTeamOneVo> PatrolInspectionTeamList() {
- List<PatrolInspectionTeamOneVo> patrolInspectionTeamOneVoList = new ArrayList<>();
- LambdaQueryWrapper<PatrolInspectionTeam> queryWrapper = Wrappers.lambdaQuery();
- queryWrapper.eq(PatrolInspectionTeam::getStatus, 1);
- List<PatrolInspectionTeam> patrolInspectionTeamList = patrolInspectionTeamService.list(queryWrapper);
- List<PatrolInspectorsOneVo> patrolInspectorsOneVoList = baseMapper.patrolInspectorsOneVoList();
- if (patrolInspectionTeamList.size() > 0) {
- for (int i = 0; i < patrolInspectionTeamList.size(); i++) {
- List<Object> List = new ArrayList<>();
- PatrolInspectionTeamOneVo patrolInspectionTeamOneVo = new PatrolInspectionTeamOneVo();
- patrolInspectionTeamOneVo.setTeamType(patrolInspectionTeamList.get(i).getTeamType());
- patrolInspectionTeamOneVo.setInspectorsId(patrolInspectionTeamList.get(i).getInspectorsId());
- patrolInspectionTeamOneVo.setTeamName(patrolInspectionTeamList.get(i).getTeamName());
- patrolInspectionTeamOneVo.setCreator(patrolInspectionTeamList.get(i).getCreator());
- patrolInspectionTeamOneVo.setCreateTime(patrolInspectionTeamList.get(i).getCreateTime());
- patrolInspectionTeamOneVo.setStatus(patrolInspectionTeamList.get(i).getStatus());
- patrolInspectionTeamOneVo.setId(patrolInspectionTeamList.get(i).getId());
- patrolInspectionTeamOneVo.setUserId(patrolInspectionTeamList.get(i).getUserId());
- patrolInspectionTeamOneVo.setReservedField(patrolInspectionTeamList.get(i).getReservedField());
- if (patrolInspectorsOneVoList.size() > 0) {
- for (int j = 0; j < patrolInspectorsOneVoList.size(); j++) {
- if (patrolInspectionTeamList.get(i).getId() == patrolInspectorsOneVoList.get(j).getTeamId()) {
- List.add(patrolInspectorsOneVoList.get(j));
- }
- }
- }
- patrolInspectionTeamOneVo.setPatrolInspectorsOneVo(List);
- patrolInspectionTeamOneVoList.add(patrolInspectionTeamOneVo);
- }
- }
- return patrolInspectionTeamOneVoList;
- }
- @Override
- public List<OpexStatisticsVo> operationCensus(String type) {
- String firstDay;
- String lastDay;
- Date startDate;
- Date endDate;
- String startTime;
- String endTime;
- int days = 0;
- SysUser user = SecurityUtils.getLoginUser().getUser();
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
- SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- SimpleDateFormat yearFormatter = new SimpleDateFormat("yyyy");
- Date date = new Date();
- String year = yearFormatter.format(date);
- String startHms = "00:00:00";
- String endHms = "23:59:59";
- Integer stayGrabOrdersCount = 0;
- Integer stayAppointCount = 0;
- Integer stayOrderTakingCount = 0;
- Integer stayManageCount = 0;
- Integer stayCustomsClearanceCount = 0;
- Integer completedCount = 0;
- switch (type) {
- case "thisMonth":
- Calendar calendar = new GregorianCalendar();
- calendar.setTime(date);
- //获得本月第一天
- calendar.add(Calendar.MONTH, 0);
- calendar.set(Calendar.DAY_OF_MONTH, 1);
- firstDay = sdf.format(calendar.getTime());
- startDate = calendar.getTime();
- //获得本月最后一天
- calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
- lastDay = sdf.format(calendar.getTime());
- startTime = firstDay + " " + startHms;
- endTime = lastDay + " " + endHms;
- days = (int) ((date.getTime() - startDate.getTime()) / (1000 * 3600 * 24)) + 1;
- break;
- case "lastMonth":
- //获取前一个月第一天
- Calendar calendar1 = Calendar.getInstance();
- calendar1.add(Calendar.MONTH, -1);
- calendar1.set(Calendar.DAY_OF_MONTH, 1);
- firstDay = sdf.format(calendar1.getTime());
- startDate = calendar1.getTime();
- //获取前一个月最后一天
- Calendar calendar2 = Calendar.getInstance();
- calendar2.set(Calendar.DAY_OF_MONTH, 0);
- lastDay = sdf.format(calendar2.getTime());
- endDate = calendar2.getTime();
- startTime = firstDay + " " + startHms;
- endTime = lastDay + " " + endHms;
- days = (int) ((endDate.getTime() - startDate.getTime()) / (1000 * 3600 * 24)) + 1;
- break;
- case "thisQuarter":
- //获取本季度第一天
- startDate = getCurrentQuarterStartTime();
- firstDay = sdf.format(startDate);
- //获取本季度最后一天
- endDate = getCurrentQuarterEndTime();
- lastDay = sdf.format(endDate);
- startTime = firstDay + " " + startHms;
- endTime = lastDay + " " + endHms;
- days = (int) ((date.getTime() - startDate.getTime()) / (1000 * 3600 * 24)) + 1;
- break;
- case "lastQuarter":
- startDate = getCurrentQuarterStartTime();
- endDate = getCurrentQuarterEndTime();
- Calendar calendar3 = Calendar.getInstance(); //得到日历
- calendar3.setTime(startDate);//把当前时间赋给日历
- calendar3.add(calendar3.MONTH, -3); //设置为前3月
- date = calendar3.getTime(); //得到前3月的时间
- firstDay = sdf.format(date);
- calendar3.setTime(endDate);//把当前时间赋给日历
- calendar3.add(calendar3.MONTH, -3); //设置为前3月
- date = calendar3.getTime(); //得到前3月的时间
- lastDay = sdf.format(date);
- startTime = firstDay + " " + startHms;
- endTime = lastDay + " " + endHms;
- days = (int) ((endDate.getTime() - startDate.getTime()) / (1000 * 3600 * 24)) + 1;
- break;
- case "thisYear":
- //获取本年时间
- startTime = year + "-01-01 " + startHms;
- endTime = year + "-12-31 " + endHms;
- try {
- startDate = sdf.parse(year + "-01-01");
- days = (int) ((date.getTime() - startDate.getTime()) / (1000 * 3600 * 24)) + 1;
- } catch (ParseException e) {
- e.printStackTrace();
- }
- break;
- case "lastYear":
- Calendar c = Calendar.getInstance();
- c.add(Calendar.YEAR, -1);
- Date yearDate = c.getTime();
- String yearTime = yearFormatter.format(yearDate);
- startTime = yearTime + "-01-01 " + startHms;
- endTime = yearTime + "-12-31 " + endHms;
- try {
- startDate = sdf.parse(year + "-01-01");
- endDate = sdf.parse(yearTime + "-12-31");
- days = (int) ((endDate.getTime() - startDate.getTime()) / (1000 * 3600 * 24)) + 1;
- } catch (ParseException e) {
- e.printStackTrace();
- }
- break;
- default:
- String[] time = type.split(",");
- startTime = time[0] + " " + startHms;
- endTime = time[1] + " " + endHms;
- try {
- startDate = sdf.parse(time[0]);
- endDate = sdf.parse(time[1]);
- days = (int) ((endDate.getTime() - startDate.getTime()) / (1000 * 3600 * 24)) + 1;
- } catch (ParseException e) {
- e.printStackTrace();
- }
- }
- //新建工单数量
- LambdaQueryWrapper<DevopsWorkOrder> queryWrapper = Wrappers.lambdaQuery();
- queryWrapper.eq(DevopsWorkOrder::getStatus, 1)
- .between(DevopsWorkOrder::getCreateTime, startTime, endTime);
- Integer newWorkOrderCount = this.count(queryWrapper);
- //已完成工单
- LambdaQueryWrapper<DevopsWorkOrder> queryWrapperOne = Wrappers.lambdaQuery();
- queryWrapperOne.eq(DevopsWorkOrder::getStatus, 1)
- .eq(DevopsWorkOrder::getWorkOrderStatus, 6)
- .between(DevopsWorkOrder::getCreateTime, startTime, endTime);
- Integer completedWorkOrder = this.count(queryWrapperOne);
- //平均响应时间
- Double averageResponseTime = 0.30;
- //日均工单数
- double workOrderAveCount = newWorkOrderCount / days;
- //工作状态
- QueryWrapper<DevopsWorkOrder> queryWrapperTwo = new QueryWrapper<>();
- queryWrapperTwo.select("work_order_status", "count(*) as count")
- .eq("status",1)
- .between("create_time", startTime, endTime)
- .groupBy("work_order_status");
- List<DevopsWorkOrder> groupingQueryVoList = this.list(queryWrapperTwo);
- for (int i = 0; i < groupingQueryVoList.size(); i++) {
- switch (groupingQueryVoList.get(i).getWorkOrderStatus()) {
- case 1:
- stayGrabOrdersCount = groupingQueryVoList.get(i).getCount();
- break;
- case 2:
- stayAppointCount = groupingQueryVoList.get(i).getCount();
- break;
- case 3:
- stayOrderTakingCount = groupingQueryVoList.get(i).getCount();
- break;
- case 4:
- stayManageCount = groupingQueryVoList.get(i).getCount();
- break;
- case 5:
- stayCustomsClearanceCount = groupingQueryVoList.get(i).getCount();
- break;
- case 6:
- completedCount = groupingQueryVoList.get(i).getCount();
- break;
- default:
- }
- }
- //各站点各类工单数统计
- QueryWrapper<DevopsWorkOrder> queryWrapperThree = new QueryWrapper<>();
- queryWrapperThree.select("site_id","work_order_type", "count(*) as count")
- .eq("status",1)
- .between("create_time", startTime, endTime)
- .groupBy("site_id","work_order_type");
- List<DevopsWorkOrder> WorkOrderStatisticsList = this.list(queryWrapperThree);
- List<Object> workOrderStatistics = new ArrayList<>();
- List<Site> siteList = baseMapper.SiteList(user.getUserId().intValue(), null);
- if (siteList.size()>0){
- for (int i=0;i<siteList.size();i++){
- Map<String,Object> map = new HashMap<>();
- Integer safetyValuationCount = 0;
- Integer overhaulCount = 0;
- Integer rushRepairCount = 0;
- Integer otherCount = 0;
- Integer maintainCount = 0;
- Integer outageMaintenanceCount = 0;
- Integer inspectionCount = 0;
- if (WorkOrderStatisticsList.size()>0){
- for (int j=0;j<WorkOrderStatisticsList.size();j++){
- if (siteList.get(i).getId()==WorkOrderStatisticsList.get(j).getSiteId()){
- switch (WorkOrderStatisticsList.get(j).getWorkOrderType()) {
- case 1:
- safetyValuationCount = WorkOrderStatisticsList.get(j).getCount();
- break;
- case 2:
- overhaulCount= WorkOrderStatisticsList.get(j).getCount();
- break;
- case 3:
- rushRepairCount= WorkOrderStatisticsList.get(j).getCount();
- break;
- case 4:
- otherCount= WorkOrderStatisticsList.get(j).getCount();
- break;
- case 5:
- maintainCount= WorkOrderStatisticsList.get(j).getCount();
- break;
- case 6:
- outageMaintenanceCount= WorkOrderStatisticsList.get(j).getCount();
- break;
- case 7:
- inspectionCount= WorkOrderStatisticsList.get(j).getCount();
- break;
- default:
- }
- }
- map.put("siteName",siteList.get(i).getSiteName());
- map.put("safetyValuationCount",safetyValuationCount);
- map.put("overhaulCount",overhaulCount);
- map.put("rushRepairCount",rushRepairCount);
- map.put("otherCount",otherCount);
- map.put("maintainCount",maintainCount);
- map.put("outageMaintenanceCount",outageMaintenanceCount);
- map.put("inspectionCount",inspectionCount);
- }
- }else {
- map.put("siteName",siteList.get(i).getSiteName());
- map.put("safetyValuationCount",safetyValuationCount);
- map.put("overhaulCount",overhaulCount);
- map.put("rushRepairCount",rushRepairCount);
- map.put("otherCount",otherCount);
- map.put("maintainCount",maintainCount);
- map.put("outageMaintenanceCount",outageMaintenanceCount);
- map.put("inspectionCount",inspectionCount);
- }
- workOrderStatistics.add(map);
- }
- }
- //工单数趋势
- QueryWrapper<DevopsWorkOrder> queryWrapperFour = new QueryWrapper<>();
- queryWrapperFour.select("FROM_UNIXTIME(UNIX_TIMESTAMP(create_time) , '%Y-%m-%d') as create_time", "count(*) as count")
- .eq("status",1)
- .between("create_time", startTime, endTime)
- .groupBy("site_id","work_order_type");
- List<DevopsWorkOrder> workOrderTrend = this.list(queryWrapperFour);
- List<OpexStatisticsVo> list = new ArrayList<>();
- list.add(OpexStatisticsVo.builder()
- .newWorkOrderCount(newWorkOrderCount)
- .completedWorkOrder(completedWorkOrder)
- .averageResponseTime(averageResponseTime)
- .workOrderAveCount(workOrderAveCount)
- .stayGrabOrdersCount(stayGrabOrdersCount)
- .stayAppointCount(stayAppointCount)
- .stayOrderTakingCount(stayOrderTakingCount)
- .stayManageCount(stayManageCount)
- .stayCustomsClearanceCount(stayCustomsClearanceCount)
- .completedCount(completedCount)
- .workOrderStatistics(workOrderStatistics)
- .workOrderTrend(workOrderTrend)
- .build());
- return list;
- }
- //根据当前日期获取本季度第一天
- public static Date getCurrentQuarterStartTime() {
- Calendar c = Calendar.getInstance();
- int currentMonth = c.get(Calendar.MONTH) + 1;
- SimpleDateFormat longSdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- SimpleDateFormat shortSdf = new SimpleDateFormat("yyyy-MM-dd");
- Date now = null;
- try {
- if (currentMonth <= 3)
- c.set(Calendar.MONTH, 0);
- else if (currentMonth <= 6)
- c.set(Calendar.MONTH, 3);
- else if (currentMonth <= 9)
- c.set(Calendar.MONTH, 6);
- else if (currentMonth <= 12)
- c.set(Calendar.MONTH, 9);
- c.set(Calendar.DATE, 1);
- now = longSdf.parse(shortSdf.format(c.getTime()) + " 00:00:00");
- } catch (Exception e) {
- e.printStackTrace();
- }
- return now;
- }
- //根据当前日期获取本季度最后一天
- public static Date getCurrentQuarterEndTime() {
- Calendar cal = Calendar.getInstance();
- cal.setTime(getCurrentQuarterStartTime());
- cal.add(Calendar.MONTH, 2);
- cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
- cal.set(Calendar.HOUR_OF_DAY, 23);
- cal.set(Calendar.MINUTE, 59);
- cal.set(Calendar.SECOND, 59);
- cal.set(Calendar.MILLISECOND, 999);
- return cal.getTime();
- }
- public static String getQuarter() {
- Calendar c = Calendar.getInstance();
- int month = c.get(c.MONTH) + 1;
- int quarter = 0;
- if (month >= 1 && month <= 3) {
- quarter = 1;
- } else if (month >= 4 && month <= 6) {
- quarter = 2;
- } else if (month >= 7 && month <= 9) {
- quarter = 3;
- } else {
- quarter = 4;
- }
- return quarter + "";
- }
- }
|