From 1cad14bca191807e18705c3a5526eda8151be439 Mon Sep 17 00:00:00 2001 From: zhanghua <314079846@qq.com> Date: 星期一, 14 四月 2025 23:10:22 +0800 Subject: [PATCH] 批量审核和图片保存bug --- ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/DisposeRecordServiceImpl.java | 238 +++++++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 164 insertions(+), 74 deletions(-) diff --git a/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/DisposeRecordServiceImpl.java b/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/DisposeRecordServiceImpl.java index 059a182..f2f4c28 100644 --- a/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/DisposeRecordServiceImpl.java +++ b/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/DisposeRecordServiceImpl.java @@ -1,13 +1,17 @@ package com.ycl.service.caseHandler.impl; +import cn.hutool.core.util.PageUtil; +import com.alibaba.druid.sql.PagerUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ycl.api.CommonResult; import com.ycl.bo.AdminUserDetails; -import com.ycl.controller.video.common.constant.BaseCaseStatus; -import com.ycl.controller.video.common.constant.StepName; +import com.ycl.common.constant.BaseCaseStatus; +import com.ycl.common.constant.StepName; import com.ycl.dto.dispatch.UploadDisposingResultParam; import com.ycl.entity.caseHandler.*; import com.ycl.entity.resources.ImageResources; @@ -18,6 +22,7 @@ import com.ycl.service.caseHandler.*; import com.ycl.service.resources.IImageResourcesService; import com.ycl.vo.MyBacklogVO; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -28,7 +33,9 @@ import javax.annotation.Resource; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; +import java.util.ArrayList; import java.util.List; +import java.util.Objects; /** * <p> @@ -39,16 +46,15 @@ * @since 2022-09-24 */ @Service +@Slf4j public class DisposeRecordServiceImpl extends ServiceImpl<DisposeRecordMapper, DisposeRecord> implements IDisposeRecordService { @Resource BaseCaseMapper baseCaseMapper; - @Resource DisposeRecordMapper disposeRecordMapper; @Resource WorkflowConfigStepMapper workflowConfigStepMapper; - @Autowired IInvestigationService iInvestigationService; @Autowired @@ -63,56 +69,130 @@ IDisposeRecordService iDisposeRecordService; @Autowired IImageResourcesService iImageResourcesService; + public final static Short LAST_WEEK = 0; + public final static Short LAST_MONTH = 1; + public final static Short LAST_THREEMONTH = 2; @Override - public List<MyBacklogVO> listMyTask(String num, Long userId) { - return disposeRecordMapper.selectMyBackList(userId, num); + public Page<MyBacklogVO> listMyTask(String num, Long userId, Short type, Short source, Short time, Integer current, Integer pageSize) { + LocalDateTime alarmTimeStart = null; + LocalDateTime alarmTimeEnd = null; + if (Objects.equals(time, LAST_WEEK)) { + alarmTimeStart = LocalDateTime.now().minusDays(7); + alarmTimeEnd = LocalDateTime.now(); + } else if (Objects.equals(time, LAST_MONTH)) { + alarmTimeStart = LocalDateTime.now().minusMonths(1); + alarmTimeEnd = LocalDateTime.now(); + } else if (Objects.equals(time, LAST_THREEMONTH)) { + alarmTimeStart = LocalDateTime.now().minusMonths(3); + alarmTimeEnd = LocalDateTime.now(); + } + Integer pageIndex = PageUtil.getStart(current - 1, pageSize); + List<MyBacklogVO> list = disposeRecordMapper.selectMyBackList(userId, num, alarmTimeStart, alarmTimeEnd, source, type, pageIndex, pageSize); + Long total = disposeRecordMapper.selectMyBackListTotal(userId, num, alarmTimeStart, alarmTimeEnd, source, type); + + list.forEach(o -> { + if (o.getPictureList() != null && o.getPictureList().size() > 0) { + o.setPicture(o.getPictureList().get(0).getUrl()); + } + }); + Page<MyBacklogVO> page = new Page<>(); + page.setRecords(list); + page.setTotal(total); + return page; + } + + @Override + public Long listMyTaskCount(String num, Long userId, Short type, Short source, Short time) { + LocalDateTime alarmTimeStart = null; + LocalDateTime alarmTimeEnd = null; + if (Objects.equals(time, LAST_WEEK)) { + alarmTimeStart = LocalDateTime.now().minusDays(7); + alarmTimeEnd = LocalDateTime.now(); + } else if (Objects.equals(time, LAST_MONTH)) { + alarmTimeStart = LocalDateTime.now().minusMonths(1); + alarmTimeEnd = LocalDateTime.now(); + } else if (Objects.equals(time, LAST_THREEMONTH)) { + alarmTimeStart = LocalDateTime.now().minusMonths(3); + alarmTimeEnd = LocalDateTime.now(); + } + return disposeRecordMapper.selectMyBackListTotal(userId, num, alarmTimeStart, alarmTimeEnd, source, type); } @Override @Transactional(rollbackFor = Exception.class) - public Boolean saveOrUpdateUpload(UploadDisposingResultParam uploadDisposingResultParam) { + public CommonResult saveOrUpdateUpload(UploadDisposingResultParam uploadDisposingResultParam) { + log.info("鍙傛暟------------------>{}", uploadDisposingResultParam); + if (uploadDisposingResultParam.getArrivalTime() != null) { + uploadDisposingResultParam.setArrivalTime(uploadDisposingResultParam.getArrivalTime().replace("/", "-")); + } + if (uploadDisposingResultParam.getInvestigationTime() != null) { + uploadDisposingResultParam.setInvestigationTime(uploadDisposingResultParam.getInvestigationTime().replace("/", "-")); + } + + List<String> pics = new ArrayList<>(); + uploadDisposingResultParam.getPic().forEach(o -> { + pics.add(o.replace("/sccg/API/img?fileUrl=", "")); + }); + uploadDisposingResultParam.setPic(pics); + + List<String> situationPics = new ArrayList<>(); + uploadDisposingResultParam.getSituationPic().forEach(o -> { + situationPics.add(o.replace("/sccg/API/img?fileUrl=", "")); + }); + uploadDisposingResultParam.setSituationPic(situationPics); + AdminUserDetails user = (AdminUserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); - ArrivalSituation arrivalSituationed = iArrivalSituationService.getOne(new LambdaQueryWrapper<ArrivalSituation>().eq(ArrivalSituation::getBaseCaseId, uploadDisposingResultParam.getCaseId())); - if (arrivalSituationed != null || arrivalSituationed.getId() != null) { - //褰撲簨浜� - PartyInfo partyInfo = new PartyInfo(); - if (StringUtils.isNotEmpty(uploadDisposingResultParam.getName())) { + List<ArrivalSituation> list = iArrivalSituationService.list(new LambdaQueryWrapper<ArrivalSituation>().eq(ArrivalSituation::getBaseCaseId, uploadDisposingResultParam.getCaseId())); + if (!list.isEmpty()) { + //TODO:杩濊娌℃湁褰撲簨浜篒D,杩濆缓鎵嶆湁 + if (uploadDisposingResultParam.getPartyInfoId() != null) { + //褰撲簨浜� + PartyInfo partyInfo = new PartyInfo(); BeanUtils.copyProperties(uploadDisposingResultParam, partyInfo); + //TODO:鍓嶇鍥炴樉鍙湁褰撲簨浜哄鍚嶉渶瑕佸湪璇︽儏杩斿洖 + //TODO:鍚庡彴涓婃姤褰撲簨浜轰俊鎭~涓嶈繘鍘� partyInfo.setId(uploadDisposingResultParam.getPartyInfoId()); iPartyInfoService.updateById(partyInfo); + //璋冩煡鍙栬瘉 + Investigation investigation = new Investigation(); + BeanUtils.copyProperties(uploadDisposingResultParam, investigation); + investigation.setBaseCaseId(uploadDisposingResultParam.getCaseId()); + investigation.setPartyId(partyInfo.getId()); + //TODO:鏀逛负闆嗗悎鐨勫瓧绗︿覆褰㈠紡 + investigation.setPic(String.join(",", uploadDisposingResultParam.getPic())); + //TODO:灏忕▼搴忓墠绔〉闈㈡病鏈夎皟鏌ユ椂闂达紝鏆傛椂涓嶅~ + //investigation.setInvestigationTime(LocalDateTime.parse(uploadDisposingResultParam.getInvestigationTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + investigation.setId(uploadDisposingResultParam.getInvestigationId()); + iInvestigationService.updateById(investigation); } - //璋冩煡鍙栬瘉 - Investigation investigation = new Investigation(); - BeanUtils.copyProperties(uploadDisposingResultParam, investigation); - investigation.setBaseCaseId(uploadDisposingResultParam.getCaseId()); - investigation.setPartyId(partyInfo.getId()); - investigation.setInvestigationTime(LocalDateTime.parse(uploadDisposingResultParam.getInvestigationTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); - investigation.setId(uploadDisposingResultParam.getInvestigationId()); - iInvestigationService.updateById(investigation); //鍒拌揪 ArrivalSituation arrivalSituation = new ArrivalSituation(); BeanUtils.copyProperties(uploadDisposingResultParam, arrivalSituation); arrivalSituation.setBaseCaseId(uploadDisposingResultParam.getCaseId()); arrivalSituation.setArrivalTime(LocalDateTime.parse(uploadDisposingResultParam.getArrivalTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); arrivalSituation.setId(uploadDisposingResultParam.getArrivalSituationId()); + //TODO:鏀逛负闆嗗悎鐨勫瓧绗︿覆褰㈠紡 + arrivalSituation.setSituationPic(String.join(",", uploadDisposingResultParam.getSituationPic())); iArrivalSituationService.updateById(arrivalSituation); //鏂囦功 String handType = "02"; + iImageResourcesService.deleteByCaseId(uploadDisposingResultParam.getCaseId(), handType); ImageResources imageResources = new ImageResources(); imageResources.setType(handType); imageResources.setBelongToId(uploadDisposingResultParam.getCaseId()); - imageResources.setUrl(StringUtils.joinWith(",", uploadDisposingResultParam.getPic(), uploadDisposingResultParam.getSituationPic())); - imageResources.setId(uploadDisposingResultParam.getImageResourcesId()); - iImageResourcesService.updateById(imageResources); + imageResources.setUrl(StringUtils.joinWith(",", + String.join(",", uploadDisposingResultParam.getPic()), + String.join(",", uploadDisposingResultParam.getSituationPic()))); + iImageResourcesService.save(imageResources); if (uploadDisposingResultParam.getWritCode() != null && uploadDisposingResultParam.getWritType() != null) { Writ writ = new Writ(); BeanUtils.copyProperties(uploadDisposingResultParam, writ); writ.setBaseCaseId(uploadDisposingResultParam.getCaseId()); writ.setIllegalBuildingId(uploadDisposingResultParam.getCaseId()); - writ.setLimitTime(LocalDateTime.parse(uploadDisposingResultParam.getLimitTime(), DateTimeFormatter.ofPattern("YYYY-MM-dd HH:mm:ss"))); - writ.setRectifyTime(LocalDateTime.parse(uploadDisposingResultParam.getRectifyTime(), DateTimeFormatter.ofPattern("YYYY-MM-dd HH:mm:ss"))); - writ.setSendTime(LocalDateTime.parse(uploadDisposingResultParam.getSendTime(), DateTimeFormatter.ofPattern("YYYY-MM-dd HH:mm:ss"))); + writ.setLimitTime(LocalDateTime.parse(uploadDisposingResultParam.getLimitTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + writ.setRectifyTime(LocalDateTime.parse(uploadDisposingResultParam.getRectifyTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + writ.setSendTime(LocalDateTime.parse(uploadDisposingResultParam.getSendTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); iWritService.updateById(writ); imageResources.setUrl(StringUtils .joinWith(",", uploadDisposingResultParam.getPic() @@ -123,24 +203,26 @@ , uploadDisposingResultParam.getWritPic())); iImageResourcesService.updateById(imageResources); } - return baseCaseService.update(new LambdaUpdateWrapper<BaseCase>().eq(BaseCase::getId, uploadDisposingResultParam.getCaseId()).set(BaseCase::getState, BaseCaseStatus.CHECK)); + baseCaseService.update(new LambdaUpdateWrapper<BaseCase>().eq(BaseCase::getId, uploadDisposingResultParam.getCaseId()).set(BaseCase::getState, BaseCaseStatus.DISPOSE)); } else { //褰撲簨浜� PartyInfo partyInfo = new PartyInfo(); - if (StringUtils.isNotEmpty(uploadDisposingResultParam.getName())) { - BeanUtils.copyProperties(uploadDisposingResultParam, partyInfo); - partyInfo.setCreateUser(user.getUserId().intValue()); - partyInfo.setCreateTime(LocalDateTime.now()); - iPartyInfoService.save(partyInfo); - } + BeanUtils.copyProperties(uploadDisposingResultParam, partyInfo); + partyInfo.setCreateUser(user.getUserId().intValue()); + partyInfo.setCreateTime(LocalDateTime.now()); + iPartyInfoService.save(partyInfo); //璋冩煡鍙栬瘉 Investigation investigation = new Investigation(); BeanUtils.copyProperties(uploadDisposingResultParam, investigation); investigation.setBaseCaseId(uploadDisposingResultParam.getCaseId()); investigation.setCreateTime(LocalDateTime.now()); + //TODO:鏀逛负闆嗗悎鐨勫瓧绗︿覆褰㈠紡 + investigation.setPic(String.join(",", uploadDisposingResultParam.getPic())); investigation.setCreateUser(user.getUserId()); investigation.setPartyId(partyInfo.getId()); - investigation.setInvestigationTime(LocalDateTime.parse(uploadDisposingResultParam.getInvestigationTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + + //TODO:鍓嶇椤甸潰娌℃湁璋冩煡鏃堕棿锛屾殏鏃朵笉濉� +// investigation.setInvestigationTime(LocalDateTime.parse(uploadDisposingResultParam.getInvestigationTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); iInvestigationService.save(investigation); //鍒拌揪 ArrivalSituation arrivalSituation = new ArrivalSituation(); @@ -148,6 +230,8 @@ arrivalSituation.setBaseCaseId(uploadDisposingResultParam.getCaseId()); arrivalSituation.setCreateTime(LocalDateTime.now()); arrivalSituation.setCreateUser(user.getUserId()); + //TODO:鏀逛负闆嗗悎鐨勫瓧绗︿覆褰㈠紡 + arrivalSituation.setSituationPic(String.join(",", uploadDisposingResultParam.getSituationPic())); arrivalSituation.setArrivalTime(LocalDateTime.parse(uploadDisposingResultParam.getArrivalTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); iArrivalSituationService.save(arrivalSituation); //鏂囦功 @@ -157,7 +241,9 @@ imageResources.setBelongToId(uploadDisposingResultParam.getCaseId()); imageResources.setCreateTime(LocalDateTime.now()); imageResources.setCreateUser(user.getUserId()); - imageResources.setUrl(StringUtils.joinWith(",", uploadDisposingResultParam.getPic(), uploadDisposingResultParam.getSituationPic())); + imageResources.setUrl(StringUtils.joinWith(",", + String.join(",", uploadDisposingResultParam.getPic()), + String.join(",", uploadDisposingResultParam.getSituationPic()))); iImageResourcesService.save(imageResources); if (uploadDisposingResultParam.getWritCode() != null && uploadDisposingResultParam.getWritType() != null) { Writ writ = new Writ(); @@ -166,13 +252,14 @@ writ.setIllegalBuildingId(uploadDisposingResultParam.getCaseId()); writ.setCreateTime(LocalDateTime.now()); writ.setCreateUser(user.getUserId()); - writ.setLimitTime(LocalDateTime.parse(uploadDisposingResultParam.getLimitTime(), DateTimeFormatter.ofPattern("YYYY-MM-dd HH:mm:ss"))); - writ.setRectifyTime(LocalDateTime.parse(uploadDisposingResultParam.getRectifyTime(), DateTimeFormatter.ofPattern("YYYY-MM-dd HH:mm:ss"))); - writ.setSendTime(LocalDateTime.parse(uploadDisposingResultParam.getSendTime(), DateTimeFormatter.ofPattern("YYYY-MM-dd HH:mm:ss"))); + writ.setLimitTime(LocalDateTime.parse(uploadDisposingResultParam.getLimitTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + writ.setRectifyTime(LocalDateTime.parse(uploadDisposingResultParam.getRectifyTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + writ.setSendTime(LocalDateTime.parse(uploadDisposingResultParam.getSendTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); iWritService.save(writ); imageResources.setUrl(StringUtils - .joinWith(",", uploadDisposingResultParam.getPic() - , uploadDisposingResultParam.getSituationPic() + .joinWith("," + , String.join(",", uploadDisposingResultParam.getPic()) + , String.join(",", uploadDisposingResultParam.getSituationPic()) , uploadDisposingResultParam.getOriginalPic() , uploadDisposingResultParam.getOtherPic() , uploadDisposingResultParam.getRectifiedPic() @@ -181,40 +268,43 @@ } baseCaseService.update(new LambdaUpdateWrapper<BaseCase>().eq(BaseCase::getId, uploadDisposingResultParam.getCaseId()).set(BaseCase::getState, BaseCaseStatus.DISPOSE)); - String stepName = StepName.CHECK.getName(); - DisposeRecord disposeRecord = new DisposeRecord(); - disposeRecord.setBaseCaseId(uploadDisposingResultParam.getCaseId()); - disposeRecord.setState(0); - disposeRecord.setCreateTime(LocalDateTime.now()); - disposeRecord.setCreateUser(user.getUserId()); - disposeRecord.setStepName(stepName); - disposeRecord.setStartTime(LocalDateTime.now()); - - //缁撴潫涓婁紶澶勭疆娴佺▼ - QueryWrapper<WorkflowConfigStep> qureyDispatch = new QueryWrapper<>(); - qureyDispatch.eq("name", StepName.DISPOSE.getName()); - WorkflowConfigStep dispatchStep = workflowConfigStepMapper.selectOne(qureyDispatch); - - UpdateWrapper<DisposeRecord> updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("base_case_id", disposeRecord.getBaseCaseId()).eq("workflow_config_step_id", dispatchStep.getId()); - - DisposeRecord updateRecord = new DisposeRecord(); - updateRecord.setState(1); - updateRecord.setEndTime(LocalDateTime.now()); - updateRecord.setHandlerId(disposeRecord.getCreateUser()); - updateRecord.setResult(uploadDisposingResultParam.getDescription()); - baseMapper.update(updateRecord, updateWrapper); - - QueryWrapper<WorkflowConfigStep> stepQurey = new QueryWrapper<>(); - stepQurey.eq("name", disposeRecord.getStepName()); - WorkflowConfigStep workflowConfigStep = workflowConfigStepMapper.selectOne(stepQurey); - if (workflowConfigStep == null) { - throw new ApiException("鏈煡璇㈠埌璇ユ祦绋嬬幆鑺�"); - } - //璁剧疆娴佺▼鐜妭鏁版嵁 - disposeRecord.setWorkflowConfigStepId(workflowConfigStep.getId()); - disposeRecord.setHandlerRoleId(workflowConfigStep.getRoleId()); - return baseMapper.insert(disposeRecord) == 1 ? true : false; } + String stepName = StepName.CHECK.getName(); + DisposeRecord disposeRecord = new DisposeRecord(); + disposeRecord.setBaseCaseId(uploadDisposingResultParam.getCaseId()); + disposeRecord.setState(0); + disposeRecord.setCreateTime(LocalDateTime.now()); + disposeRecord.setCreateUser(user.getUserId()); + disposeRecord.setStepName(stepName); + disposeRecord.setStartTime(LocalDateTime.now()); + //缁撴潫涓婁紶澶勭疆娴佺▼ + QueryWrapper<WorkflowConfigStep> qureyDispatch = new QueryWrapper<>(); + qureyDispatch.eq("name", StepName.DISPOSE.getName()); + WorkflowConfigStep dispatchStep = workflowConfigStepMapper.selectOne(qureyDispatch); + + UpdateWrapper<DisposeRecord> updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("base_case_id", disposeRecord.getBaseCaseId()).eq("workflow_config_step_id", dispatchStep.getId()); + + DisposeRecord updateRecord = new DisposeRecord(); + updateRecord.setState(1); + updateRecord.setEndTime(LocalDateTime.now()); + updateRecord.setHandlerId(disposeRecord.getCreateUser()); + updateRecord.setResult(uploadDisposingResultParam.getDescription()); + baseMapper.update(updateRecord, updateWrapper); + + QueryWrapper<WorkflowConfigStep> stepQurey = new QueryWrapper<>(); + stepQurey.eq("name", disposeRecord.getStepName()); + WorkflowConfigStep workflowConfigStep = workflowConfigStepMapper.selectOne(stepQurey); + if (workflowConfigStep == null) { + throw new ApiException("鏈煡璇㈠埌璇ユ祦绋嬬幆鑺�"); + } + //璁剧疆娴佺▼鐜妭鏁版嵁 + disposeRecord.setWorkflowConfigStepId(workflowConfigStep.getId()); + disposeRecord.setHandlerRoleId(workflowConfigStep.getRoleId()); + boolean result = baseMapper.insert(disposeRecord) == 1 ? true : false; + if (!result) { + CommonResult.failed("宸叉彁浜�,璇峰嬁閲嶅鎻愪氦"); + } + return CommonResult.success("add success"); } } -- Gitblit v1.8.0