|  |  |  | 
|---|
|  |  |  | package com.doumee.service.business.impl; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.doumee.biz.system.SystemDictDataBiz; | 
|---|
|  |  |  | import com.doumee.core.constants.ResponseStatus; | 
|---|
|  |  |  | import com.doumee.core.exception.BusinessException; | 
|---|
|  |  |  | import com.doumee.core.model.LoginUserInfo; | 
|---|
|  |  |  | import com.doumee.core.model.PageData; | 
|---|
|  |  |  | import com.doumee.core.model.PageWrap; | 
|---|
|  |  |  | import com.doumee.core.utils.Constants; | 
|---|
|  |  |  | import com.doumee.core.utils.DateUtil; | 
|---|
|  |  |  | import com.doumee.core.utils.Utils; | 
|---|
|  |  |  | import com.doumee.dao.business.YwPatrolTaskRecordMapper; | 
|---|
|  |  |  | import com.doumee.dao.business.model.YwDeviceRecord; | 
|---|
|  |  |  | import com.doumee.dao.business.model.YwPatrolPoint; | 
|---|
|  |  |  | import com.doumee.dao.business.model.YwPatrolScheme; | 
|---|
|  |  |  | import com.doumee.dao.business.model.YwPatrolTaskRecord; | 
|---|
|  |  |  | import com.doumee.dao.business.*; | 
|---|
|  |  |  | import com.doumee.dao.business.model.*; | 
|---|
|  |  |  | import com.doumee.dao.system.MultifileMapper; | 
|---|
|  |  |  | import com.doumee.dao.system.model.Multifile; | 
|---|
|  |  |  | import com.doumee.dao.system.model.SystemUser; | 
|---|
|  |  |  | import com.doumee.service.business.YwPatrolTaskRecordService; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | 
|---|
|  |  |  | 
|---|
|  |  |  | import org.apache.commons.lang3.StringUtils; | 
|---|
|  |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
|---|
|  |  |  | import org.springframework.stereotype.Service; | 
|---|
|  |  |  | import org.springframework.transaction.annotation.Transactional; | 
|---|
|  |  |  | import org.springframework.util.CollectionUtils; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.util.Date; | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  | import java.util.Objects; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private YwPatrolTaskRecordMapper ywPatrolTaskRecordMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private MultifileMapper multifileMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private YwDeviceMapper ywDeviceMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private YwPatrolPointMapper ywPatrolPointMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private SystemDictDataBiz systemDictDataBiz; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private YwPatrolTaskMapper ywPatrolTaskMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public Integer create(YwPatrolTaskRecord ywPatrolTaskRecord) { | 
|---|
|  |  |  | 
|---|
|  |  |  | YwPatrolTaskRecord model = pageWrap.getModel(); | 
|---|
|  |  |  | queryWrapper.selectAll(YwPatrolTaskRecord.class) | 
|---|
|  |  |  | .selectAs(YwPatrolPoint::getName,YwPatrolTaskRecord::getPointName) | 
|---|
|  |  |  | .selectAs(YwPatrolPoint::getContent,YwPatrolTaskRecord::getContent) | 
|---|
|  |  |  | .selectAs(SystemUser::getRealname,YwPatrolTaskRecord::getRealname) | 
|---|
|  |  |  | .leftJoin(YwPatrolPoint.class,YwPatrolPoint::getId,YwPatrolTaskRecord::getPointId) | 
|---|
|  |  |  | .leftJoin(SystemUser.class,SystemUser::getId,YwPatrolTaskRecord::getDealUserId) | 
|---|
|  |  |  | .eq(YwPatrolScheme::getIsdeleted, Constants.ZERO) | 
|---|
|  |  |  | .eq(Objects.nonNull(model) && Objects.nonNull(model.getTaskId()),YwPatrolTaskRecord::getTaskId, model.getTaskId()) | 
|---|
|  |  |  | .eq(Objects.nonNull(model) && Objects.nonNull(model.getDealUserId()),YwPatrolTaskRecord::getDealUserId, model.getDealUserId()) | 
|---|
|  |  |  | .like(StringUtils.isNotBlank(model.getPointName()),YwPatrolPoint::getName,model.getPointName()) | 
|---|
|  |  |  | .eq(Objects.nonNull(model) && Objects.nonNull(model.getStatus()) , YwPatrolTaskRecord::getStatus,model.getStatus()) | 
|---|
|  |  |  | .orderByDesc(YwPatrolScheme::getCreateDate) | 
|---|
|  |  |  | 
|---|
|  |  |  | QueryWrapper<YwPatrolTaskRecord> wrapper = new QueryWrapper<>(ywPatrolTaskRecord); | 
|---|
|  |  |  | return ywPatrolTaskRecordMapper.selectCount(wrapper); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @Transactional(rollbackFor = {Exception.class,BusinessException.class}) | 
|---|
|  |  |  | public void patrolData(YwPatrolTaskRecord ywPatrolTaskRecord) { | 
|---|
|  |  |  | if(Objects.isNull(ywPatrolTaskRecord) | 
|---|
|  |  |  | || Objects.isNull(ywPatrolTaskRecord.getId()) | 
|---|
|  |  |  | ){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.BAD_REQUEST); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | LoginUserInfo loginUserInfo = ywPatrolTaskRecord.getLoginUserInfo(); | 
|---|
|  |  |  | YwPatrolTaskRecord model = ywPatrolTaskRecordMapper.selectById(ywPatrolTaskRecord.getId()); | 
|---|
|  |  |  | if(Objects.isNull(model)){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.DATA_EMPTY); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(!Constants.equalsInteger(model.getStatus(),Constants.ZERO)){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"数据状态已流转"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | YwPatrolPoint ywPatrolPoint = ywPatrolPointMapper.selectById(model.getPointId()); | 
|---|
|  |  |  | if(Objects.isNull(ywPatrolPoint)){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.DATA_EMPTY); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | YwDevice ywDevice = ywDeviceMapper.selectById(ywPatrolPoint.getDeviceId()); | 
|---|
|  |  |  | if(Objects.isNull(ywDevice)){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.DATA_EMPTY); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | YwPatrolTask ywPatrolTask = ywPatrolTaskMapper.selectById(model.getTaskId()); | 
|---|
|  |  |  | if(Objects.isNull(ywPatrolTask)){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.DATA_EMPTY); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(ywPatrolTask.getStartDate().getTime()>System.currentTimeMillis()){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"未到巡检时间无法进行该操作"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ywPatrolTaskRecordMapper.update(null,new UpdateWrapper<YwPatrolTaskRecord>().lambda() | 
|---|
|  |  |  | .set(YwPatrolTaskRecord::getDealStatus,ywDevice.getStatus()) | 
|---|
|  |  |  | .set(YwPatrolTaskRecord::getEditor,loginUserInfo.getId()) | 
|---|
|  |  |  | .set(YwPatrolTaskRecord::getEditDate, DateUtil.getCurrDateTime()) | 
|---|
|  |  |  | .set(YwPatrolTaskRecord::getDealDate, DateUtil.getCurrDateTime()) | 
|---|
|  |  |  | .set(YwPatrolTaskRecord::getDealUserId,loginUserInfo.getId()) | 
|---|
|  |  |  | .set(YwPatrolTaskRecord::getStatus,Constants.ONE) | 
|---|
|  |  |  | .set(YwPatrolTaskRecord::getDealInfo, ywPatrolTaskRecord.getDealInfo()) | 
|---|
|  |  |  | .eq(YwPatrolTaskRecord::getId,ywPatrolTaskRecord.getId())); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if(ywPatrolTaskRecordMapper.selectCount(new QueryWrapper<YwPatrolTaskRecord>().lambda() | 
|---|
|  |  |  | .eq(YwPatrolTaskRecord::getTaskId,ywPatrolTask.getId()) | 
|---|
|  |  |  | .ne(YwPatrolTaskRecord::getId,ywPatrolTaskRecord.getId()))==Constants.ZERO){ | 
|---|
|  |  |  | ywPatrolTask.setStatus(Constants.THREE); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | ywPatrolTask.setStatus(Constants.ONE); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //查询是否存在其他未 | 
|---|
|  |  |  | ywPatrolTaskMapper.update(null,new UpdateWrapper<YwPatrolTask>().lambda().eq(YwPatrolTask::getId,ywPatrolTask.getId()) | 
|---|
|  |  |  | .set(YwPatrolTask::getStatus,ywPatrolTask.getStatus()) | 
|---|
|  |  |  | .set(YwPatrolTask::getEditDate,DateUtil.getCurrDateTime()) | 
|---|
|  |  |  | .set(YwPatrolTask::getEditor,loginUserInfo.getId()) | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | //附件数据 | 
|---|
|  |  |  | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ywPatrolTaskRecord.getMultifileList())){ | 
|---|
|  |  |  | for (Multifile multifile:ywPatrolTaskRecord.getMultifileList()) { | 
|---|
|  |  |  | if(Objects.isNull(multifile) | 
|---|
|  |  |  | || StringUtils.isBlank(multifile.getFileurl()) | 
|---|
|  |  |  | ){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"附件信息错误"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | multifile.setCreator(loginUserInfo.getId()); | 
|---|
|  |  |  | multifile.setCreateDate(new Date()); | 
|---|
|  |  |  | multifile.setIsdeleted(Constants.ZERO); | 
|---|
|  |  |  | multifile.setObjType(Constants.MultiFile.FN_PATROL_TASK_RECORD_FILE.getKey()); | 
|---|
|  |  |  | multifile.setObjId(ywPatrolTaskRecord.getId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | multifileMapper.insert(ywPatrolTaskRecord.getMultifileList()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public YwPatrolTaskRecord getDetail(Integer id) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | YwPatrolTaskRecord ywPatrolTaskRecord = ywPatrolTaskRecordMapper.selectJoinOne(YwPatrolTaskRecord.class,new MPJLambdaWrapper<YwPatrolTaskRecord>() | 
|---|
|  |  |  | .selectAll(YwPatrolTaskRecord.class) | 
|---|
|  |  |  | .selectAs(YwPatrolPoint::getName,YwPatrolTaskRecord::getPointName) | 
|---|
|  |  |  | .selectAs(YwPatrolPoint::getContent,YwPatrolTaskRecord::getContent) | 
|---|
|  |  |  | .selectAs(SystemUser::getRealname,YwPatrolTaskRecord::getRealname) | 
|---|
|  |  |  | .selectAs(Company::getName,YwPatrolTaskRecord::getCompanyName) | 
|---|
|  |  |  | .leftJoin(YwPatrolPoint.class,YwPatrolPoint::getId,YwPatrolTaskRecord::getPointId) | 
|---|
|  |  |  | .leftJoin(SystemUser.class,SystemUser::getId,YwPatrolTaskRecord::getDealUserId) | 
|---|
|  |  |  | .leftJoin(Company.class,Company::getId,SystemUser::getCompanyId) | 
|---|
|  |  |  | .eq(YwPatrolScheme::getIsdeleted, Constants.ZERO) | 
|---|
|  |  |  | .eq(YwPatrolTaskRecord::getId,id) | 
|---|
|  |  |  | .orderByDesc(YwPatrolScheme::getCreateDate) | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | //附件数据 | 
|---|
|  |  |  | List<Multifile> multifileList = multifileMapper.selectJoinList(Multifile.class,new MPJLambdaWrapper<Multifile>() | 
|---|
|  |  |  | .selectAll(Multifile.class) | 
|---|
|  |  |  | .selectAs(SystemUser::getRealname,Multifile::getUserName) | 
|---|
|  |  |  | .leftJoin(SystemUser.class,SystemUser::getId,Multifile::getCreator) | 
|---|
|  |  |  | .eq(Multifile::getObjId,id) | 
|---|
|  |  |  | .eq(Multifile::getIsdeleted,Constants.ZERO) | 
|---|
|  |  |  | .eq(Multifile::getObjType,Constants.MultiFile.FN_PATROL_TASK_RECORD_FILE.getKey())); | 
|---|
|  |  |  | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(multifileList)){ | 
|---|
|  |  |  | String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() | 
|---|
|  |  |  | +systemDictDataBiz.queryByCode(Constants.FTP,Constants.YW_PATROL).getCode(); | 
|---|
|  |  |  | for (Multifile multifile:multifileList) { | 
|---|
|  |  |  | if(StringUtils.isNotBlank(multifile.getFileurl())){ | 
|---|
|  |  |  | multifile.setFileurlFull(path + multifile.getFileurl()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ywPatrolTaskRecord.setMultifileList(multifileList); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return ywPatrolTaskRecord; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|