wl
2022-09-30 35f6bd0e69018621c2293b96ddcde55b2bc58d36
ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/BaseCaseServiceImpl.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.bo.AdminUserDetails;
import com.ycl.bo.casePool.CasePoolIllegalBuildingDO;
import com.ycl.bo.casePool.CasePoolViolationDO;
import com.ycl.dto.casePool.IllegalBuildingParam;
@@ -24,12 +25,12 @@
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.time.Instant;
import java.time.Duration;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@@ -82,6 +83,8 @@
    InvestigationMapper investigationMapper;
    @Resource
    WritMapper writMapper;
    @Resource
    DisposeRecordMapper disposeRecordMapper;
    @Resource
    WorkflowConfigStepMapper workflowConfigStepMapper;
@@ -89,8 +92,6 @@
    WorkflowConfigMapper workflowConfigMapper;
    @Resource
    ImageResourcesMapper imageResourcesMapper;
    @Override
@@ -140,21 +141,20 @@
    @Override
    public Page listViolationsPage(Page page, Integer state, Integer resource) {
        Integer type = 01;
        Integer hours = 60;
        Page<CasePoolViolationDO> violationsPage = baseCaseMapper.listViolationsPage(page, state, type, resource);
        List<CasePoolViolationVO> violationVOList = violationsPage.getRecords().stream().map(item -> {
            CasePoolViolationVO casePoolViolationVO = new CasePoolViolationVO();
            BeanUtils.copyProperties(item, casePoolViolationVO);
            if (item.getCloseTime() == null) {
                long nowTime = System.currentTimeMillis();
                long alarmTime = item.getAlarmTime().toEpochSecond(ZoneOffset.ofHours(8));
                LocalDateTime continueTimes = Instant.ofEpochMilli(nowTime - alarmTime).atZone(ZoneOffset.ofHours(8)).toLocalDateTime();
                String continueTime = continueTimes.getHour() + "时" + continueTimes.getSecond() + "分钟";
                Duration duration = Duration.between(item.getAlarmTime(), LocalDateTime.now());
                long minutes = duration.toMinutes() - (duration.toHours() * hours);
                String continueTime = duration.toHours() + "时" + minutes + "分钟";
                casePoolViolationVO.setContinueTime(continueTime);
            } else {
                long closeTime = item.getCloseTime().toEpochSecond(ZoneOffset.ofHours(8));
                long alarmTime = item.getAlarmTime().toEpochSecond(ZoneOffset.ofHours(8));
                LocalDateTime continueTimes = Instant.ofEpochMilli(closeTime - alarmTime).atZone(ZoneOffset.ofHours(8)).toLocalDateTime();
                String continueTime = continueTimes.getHour() + "时" + continueTimes.getSecond() + "分钟";
                Duration duration = Duration.between(item.getAlarmTime(), item.getCloseTime());
                long minutes = duration.toMinutes() - (duration.toHours() * hours);
                String continueTime = duration.toHours() + "时" + minutes + "分钟";
                casePoolViolationVO.setContinueTime(continueTime);
            }
            casePoolViolationVO.setCategory(dataDictionaryMapper.selectById(item.getCategoryId()).getName());
@@ -287,4 +287,26 @@
        }
        return caseImages;
    }
    @Override
    public void endCase(Integer caseId, String result) {
        AdminUserDetails user = (AdminUserDetails) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
        Integer endCaseState = 6;
        Integer state = 2;
        String endCaseName = "结案";
        BaseCase baseCase = new BaseCase();
        baseCase.setState(endCaseState);
        baseCase.setId(caseId);
        baseCaseMapper.updateById(baseCase);
        DisposeRecord disposeRecord = new DisposeRecord();
        disposeRecord.setBaseCaseId(caseId);
        disposeRecord.setWorkflowConfigStepId(workflowConfigStepMapper
                .selectOne(new LambdaQueryWrapper<WorkflowConfigStep>().eq(WorkflowConfigStep::getName, endCaseName))
                .getWorkflowConfigId());
        disposeRecord.setCreateUser(user.getUserId().intValue());
        disposeRecord.setResult(result);
        disposeRecord.setState(state);
        disposeRecord.setCreateTime(LocalDateTime.now());
        disposeRecordMapper.insert(disposeRecord);
    }
}