From a2299a6d4a6f99e9c11132138f5d3e9ec68f03ea Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期五, 06 六月 2025 19:19:34 +0800 Subject: [PATCH] 开发更新 --- server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskRecordServiceImpl.java | 184 ++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 170 insertions(+), 14 deletions(-) diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskRecordServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskRecordServiceImpl.java index 6fb3725..963f7b8 100644 --- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskRecordServiceImpl.java +++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskRecordServiceImpl.java @@ -12,7 +12,9 @@ import com.doumee.dao.business.*; import com.doumee.dao.business.model.*; import com.doumee.dao.system.MultifileMapper; +import com.doumee.dao.system.join.NoticesJoinMapper; import com.doumee.dao.system.model.Multifile; +import com.doumee.dao.system.model.Notices; import com.doumee.dao.system.model.SystemUser; import com.doumee.service.business.YwPatrolTaskRecordService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -26,9 +28,11 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; /** * 杩愮淮宸℃浠诲姟 - 宸℃鐐逛俊鎭〃Service瀹炵幇 @@ -56,6 +60,11 @@ @Autowired private YwPatrolTaskMapper ywPatrolTaskMapper; + @Autowired + private YwPatrolSchemeMapper ywPatrolSchemeMapper; + + @Autowired + private NoticesJoinMapper noticesJoinMapper; @Override @@ -125,17 +134,52 @@ .selectAs(YwPatrolPoint::getName,YwPatrolTaskRecord::getPointName) .selectAs(YwPatrolPoint::getContent,YwPatrolTaskRecord::getContent) .selectAs(SystemUser::getRealname,YwPatrolTaskRecord::getRealname) + + .selectAs(YwPatrolScheme::getTitle,YwPatrolTaskRecord::getSchemeTitle) + .selectAs(YwPatrolTask::getCode,YwPatrolTaskRecord::getTaskCode) + .selectAs(YwPatrolTask::getStartDate,YwPatrolTaskRecord::getStartDate) + .selectAs(YwPatrolTask::getEndDate,YwPatrolTaskRecord::getEndDate) + .leftJoin(YwPatrolPoint.class,YwPatrolPoint::getId,YwPatrolTaskRecord::getPointId) .leftJoin(SystemUser.class,SystemUser::getId,YwPatrolTaskRecord::getDealUserId) + .leftJoin(YwPatrolTask.class,YwPatrolTask::getId,YwPatrolTaskRecord::getTaskId) + .leftJoin(YwPatrolScheme.class,YwPatrolScheme::getId,YwPatrolTask::getSchemeId) .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()) + .eq(Objects.nonNull(model) && Objects.nonNull(model.getDeviceId()) , YwPatrolPoint::getDeviceId,model.getDeviceId()) .orderByDesc(YwPatrolScheme::getCreateDate) ; IPage<YwPatrolTaskRecord> iPage = ywPatrolTaskRecordMapper.selectJoinPage(page,YwPatrolTaskRecord.class,queryWrapper); + if(iPage!=null && iPage.getRecords()!=null){ + for(YwPatrolTaskRecord m : iPage.getRecords()){ + getFileListByModel(m); + } + } return PageData.from(iPage); + } + + private void getFileListByModel(YwPatrolTaskRecord ywPatrolTaskRecord) { + //闄勪欢鏁版嵁 + 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,ywPatrolTaskRecord.getId()) + .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); + } } @Override @@ -149,7 +193,8 @@ @Transactional(rollbackFor = {Exception.class,BusinessException.class}) public void patrolData(YwPatrolTaskRecord ywPatrolTaskRecord) { if(Objects.isNull(ywPatrolTaskRecord) - || Objects.isNull(ywPatrolTaskRecord.getId()) + || Objects.isNull(ywPatrolTaskRecord.getId()) + || Objects.isNull(ywPatrolTaskRecord.getDealStatus()) ){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } @@ -161,13 +206,18 @@ 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); + YwPatrolScheme ywPatrolScheme = ywPatrolSchemeMapper.selectById(model.getSchemeId()); + if(Objects.isNull(ywPatrolScheme)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌宸℃璁″垝淇℃伅"); + } + List<String> userIdList = Arrays.asList(ywPatrolScheme.getUserIds().split(",")); + if(userIdList.stream().filter(i->Constants.equalsInteger(Integer.valueOf(i),loginUserInfo.getId())).collect(Collectors.toList()).size()<=0){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"闈炴偍鐨勫贰妫�浠诲姟鏃犳硶杩涜澶勭悊"); } YwPatrolTask ywPatrolTask = ywPatrolTaskMapper.selectById(model.getTaskId()); if(Objects.isNull(ywPatrolTask)){ @@ -176,8 +226,9 @@ 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::getDealStatus,ywPatrolTaskRecord.getDealStatus()) .set(YwPatrolTaskRecord::getEditor,loginUserInfo.getId()) .set(YwPatrolTaskRecord::getEditDate, DateUtil.getCurrDateTime()) .set(YwPatrolTaskRecord::getDealDate, DateUtil.getCurrDateTime()) @@ -186,19 +237,46 @@ .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); + .eq(YwPatrolTaskRecord::getStatus,Constants.ZERO) + .ne(YwPatrolTaskRecord::getId,ywPatrolTaskRecord.getId()) + )==Constants.ZERO){ + ywPatrolTaskMapper.update(null,new UpdateWrapper<YwPatrolTask>().lambda() + .eq(YwPatrolTask::getId,ywPatrolTask.getId()) + .set(YwPatrolTask::getStatus,Constants.THREE) + .set(YwPatrolTask::getEditDate,DateUtil.getCurrDateTime()) + .set(YwPatrolTask::getDealDate,DateUtil.getCurrDateTime()) + .set(YwPatrolTask::getDealUserId,loginUserInfo.getId()) + .set(YwPatrolTask::getEditor,loginUserInfo.getId()) + ); + + //鏍囪寰呭姙宸插鐞� + noticesJoinMapper.update(null,new UpdateWrapper<Notices>().lambda() + .set(Notices::getStatus,Constants.ONE) + .set(Notices::getParam3,Constants.TWO) + .eq(Notices::getIsdeleted,Constants.ZERO) + .eq(Notices::getObjType,Constants.ONE) + .eq(Notices::getObjId,ywPatrolTask.getId()) + ); }else{ - ywPatrolTask.setStatus(Constants.ONE); + if(Constants.equalsInteger(ywPatrolTask.getStatus(),Constants.ZERO)){ + ywPatrolTaskMapper.update(null,new UpdateWrapper<YwPatrolTask>().lambda() + .eq(YwPatrolTask::getId,ywPatrolTask.getId()) + .set(YwPatrolTask::getStatus,Constants.ONE) + .set(YwPatrolTask::getEditDate,DateUtil.getCurrDateTime()) + .set(YwPatrolTask::getEditor,loginUserInfo.getId()) + ); + } + //鏍囪寰呭姙宸插鐞� + noticesJoinMapper.update(null,new UpdateWrapper<Notices>().lambda() + .set(Notices::getParam3,Constants.ONE) + .eq(Notices::getIsdeleted,Constants.ZERO) + .eq(Notices::getObjType,Constants.ONE) + .eq(Notices::getObjId,ywPatrolTask.getId()) + ); } - //鏌ヨ鏄惁瀛樺湪鍏朵粬鏈� - 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()) { @@ -221,6 +299,84 @@ @Override + @Transactional(rollbackFor = {Exception.class,BusinessException.class}) + public YwPatrolTaskRecord getPointRecordByCode(YwPatrolTaskRecord bean) { + if(Objects.isNull(bean) + || Objects.isNull(bean.getTaskId()) + || StringUtils.isBlank(bean.getPointCode())){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + YwPatrolTaskRecord ywPatrolTaskRecord = ywPatrolTaskRecordMapper.selectJoinOne(YwPatrolTaskRecord.class,new MPJLambdaWrapper<YwPatrolTaskRecord>() + .selectAll(YwPatrolTaskRecord.class) + .selectAs(YwPatrolPoint::getName,YwPatrolTaskRecord::getPointName) + .selectAs(YwPatrolPoint::getContent,YwPatrolTaskRecord::getContent) + .selectAs(YwPatrolPoint::getDeviceId,YwPatrolTaskRecord::getDeviceId) + .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(YwPatrolTaskRecord::getIsdeleted, Constants.ZERO) + .eq(YwPatrolPoint::getCode,bean.getPointCode()) + .eq(YwPatrolTaskRecord::getTaskId,bean.getTaskId()) + .orderByDesc(YwPatrolScheme::getCreateDate) + .last(" limit 1 ") + ); + if(Objects.isNull(ywPatrolTaskRecord)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈尮閰嶅埌宸℃鐐�!"); + } + getFileListByModel(ywPatrolTaskRecord); + + return ywPatrolTaskRecord; + + } + + /** + * 鏍规嵁鐧诲綍浜轰笌宸℃鐐规煡璇换鍔′俊鎭� + * @param bean + * @return + */ + @Override + public YwPatrolTaskRecord getRecordByUserPoint(YwPatrolTaskRecord bean,LoginUserInfo loginUserInfo) { + if(Objects.isNull(bean) + || StringUtils.isBlank(bean.getPointCode())){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + if(ywPatrolPointMapper.selectCount(new QueryWrapper<YwPatrolPoint>().lambda().eq(YwPatrolPoint::getCode,bean.getPointCode()))==Constants.ZERO){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈尮閰嶅埌宸℃鐐癸紝璇烽噸鏂版壂鐮�!"); + } + YwPatrolTaskRecord ywPatrolTaskRecord = ywPatrolTaskRecordMapper.selectJoinOne(YwPatrolTaskRecord.class,new MPJLambdaWrapper<YwPatrolTaskRecord>() + .selectAll(YwPatrolTaskRecord.class) + .selectAs(YwPatrolPoint::getName,YwPatrolTaskRecord::getPointName) + .selectAs(YwPatrolPoint::getContent,YwPatrolTaskRecord::getContent) + .selectAs(YwPatrolPoint::getDeviceId,YwPatrolTaskRecord::getDeviceId) + .selectAs(YwPatrolScheme::getTitle,YwPatrolTaskRecord::getSchemeTitle) + .selectAs(SystemUser::getRealname,YwPatrolTaskRecord::getRealname) + .selectAs(Company::getName,YwPatrolTaskRecord::getCompanyName) + .leftJoin(YwPatrolPoint.class,YwPatrolPoint::getId,YwPatrolTaskRecord::getPointId) + .leftJoin(YwPatrolTask.class,YwPatrolTask::getId,YwPatrolTaskRecord::getTaskId) + .leftJoin(YwPatrolScheme.class,YwPatrolScheme::getId,YwPatrolTask::getSchemeId) + .leftJoin(SystemUser.class,SystemUser::getId,YwPatrolTaskRecord::getDealUserId) + .leftJoin(Company.class,Company::getId,SystemUser::getCompanyId) + .eq(YwPatrolTaskRecord::getIsdeleted, Constants.ZERO) + .eq(YwPatrolTaskRecord::getStatus, Constants.ZERO) + .eq(YwPatrolPoint::getCode,bean.getPointCode()) + .apply(" DATE(t2.START_DATE) = DATE(NOW()) and find_in_set('"+loginUserInfo.getId()+"', t3.USER_IDS ) ") + .orderByDesc(YwPatrolScheme::getCreateDate) + .last(" limit 1 ") + ); + if(Objects.isNull(ywPatrolTaskRecord)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浠婃棩鏆傛棤宸℃浠诲姟!"); + } + getFileListByModel(ywPatrolTaskRecord); + return ywPatrolTaskRecord; + + } + + + + + @Override public YwPatrolTaskRecord getDetail(Integer id) { YwPatrolTaskRecord ywPatrolTaskRecord = ywPatrolTaskRecordMapper.selectJoinOne(YwPatrolTaskRecord.class,new MPJLambdaWrapper<YwPatrolTaskRecord>() -- Gitblit v1.9.3