jinpengyong
2023-11-13 607613b5d0e3fd237c04dbd2ae8a65bb143fe598
screen-api/src/main/java/com/moral/api/service/impl/AllocationServiceImpl.java
@@ -6,12 +6,15 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.moral.api.config.Interceptor.UserHelper;
import com.moral.api.controller.LogController;
import com.moral.api.entity.*;
import com.moral.api.exception.BusinessException;
import com.moral.api.mapper.AllocationLogMapper;
import com.moral.api.mapper.AllocationMapper;
import com.moral.api.mapper.ResponsibilityUnitMapper;
import com.moral.api.mapper.SysDictDataMapper;
import com.moral.api.mapper.SysDictTypeMapper;
import com.moral.api.mapper.UserLogMapper;
import com.moral.api.mapper.UserMapper;
import com.moral.api.pojo.bean.BaseInvalidEntity;
import com.moral.api.pojo.dto.allocation.AllocationUnitViewDto;
@@ -25,11 +28,14 @@
import com.moral.api.pojo.query.app.AppAllocationPageCond;
import com.moral.api.pojo.vo.allocation.AllocationFindVo;
import com.moral.api.pojo.vo.app.AppAllocationFindVo;
import com.moral.api.pojo.vo.app.AppAuthority;
import com.moral.api.pojo.vo.user.QxUser;
import com.moral.api.service.*;
import com.moral.constant.Constants;
import com.moral.constant.RedisConstants;
import com.moral.util.DateUtils;
import com.moral.util.WebUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.BeanUtils;
@@ -38,9 +44,13 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import java.util.*;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest;
@Service
@@ -72,6 +82,8 @@
    private SysDictTypeService sysDictTypeService;
    @Autowired
    private UserService userService;
    @Autowired
    private AllocationLogMapper allocationLogMapper;
    /**
     * 根据字典类型获取字典数据
@@ -126,7 +138,7 @@
        //单号
        String allocationNum = "JBD-" + dateString + String.format("%04d", i);
        allocation.setAllocationNum(allocationNum);
        if(Objects.nonNull(allocationCond.getEscalationUnitId())&& escalationType(allocationCond.getEscalationUnitId())) {
        if(Objects.nonNull(allocationCond.getEscalationUnitId())&& !allocationCond.getEscalationUnitId().equals(allocationCond.getUnitId()) && escalationType(allocationCond.getEscalationUnitId())) {
            allocation.setEscalationType(AllocationEscalationTypeEnum.CHECK.getValue());
        }
        if(NEW_BUILT.equals(allocationCond.getState())) {
@@ -137,7 +149,7 @@
        //推送数据
        userService.pushOneUser(allocation);
        redisTemplate.opsForValue().set(RedisConstants.JBD_DATA,i);
        if(NEW_BUILT.equals(allocationCond.getState())) {
        if(NEW_BUILT.equals(allocationCond.getState())||AllocationApproveEnum.UNDER_RECTIFICATION.value.equals(allocationCond.getState())) {
            //添加流程数据
            ApproveTable approveTable = new ApproveTable();
            approveTable.setRelationId(allocation.getAllocationId());
@@ -507,6 +519,9 @@
        allocationExt.setFileChangeList(fileTableService.list(id,FileTableEnum.ALLOCATION_RECTIFICATION.value));
        allocationExt.setFileApproveList(fileTableService.list(id,FileTableEnum.ALLOCATION_APPROVE.value));
        allocationExt.setApproveList(approveTableService.listAll(id, FileTableEnum.ALLOCATION_FOUNDATION.value));
        allocationExt.setUnitName(getUnitName(allocationExt.getUnitId()).getUnitName());
        allocationExt.setEscalationUnitName(getUnitName(allocationExt.getEscalationUnitId()).getUnitName());
        allocationExt.setPolluteTypeName(responsibilityUnitMapper.selectName(Constants.WU_RAN_LEI_XING,allocationExt.getPolluteType()));
        return allocationExt;
    }
@@ -707,6 +722,8 @@
        Page<AllocationPageExt> extAppPage = this.baseMapper.extAppPage(allocationPageCond.getPage().convertPage(),allocationPageCond);
        extAppPage.getRecords().forEach(it->{
            Integer state = it.getState();
            //获取上报单位名字
            it.setEscalationUnitName(getUnitName(it.getEscalationUnitId()).getUnitName());
            if (state.equals(AllocationApproveEnum.DRAFT.value)||state.equals(AllocationApproveEnum.UNDER_RECTIFICATION.value)){
                if(integer==0||integer==1){
                    it.setStateName(AppAllocationStateEnum.TO_BE_PROCESSED.name);
@@ -794,9 +811,12 @@
        //添加流程数据
        ApproveTable approveTable = new ApproveTable();
        approveTable.setRelationId(allocation.getAllocationId());
        approveTable.setApproveModule(FileTableEnum.ALLOCATION_FOUNDATION.value);
       /* approveTable.setState(NEW_BUILT);
        approveTable.setStateName("新建");
        approveTableService.saveResult(approveTable);*/
        approveTable.setState(AllocationApproveEnum.UNDER_RECTIFICATION.value);
        approveTable.setStateName(AllocationApproveEnum.UNDER_RECTIFICATION.name);
        approveTable.setApproveModule(FileTableEnum.ALLOCATION_FOUNDATION.value);
        approveTableService.saveResult(approveTable);
        fileTableService.upDateResult(changeCond.getFileChangeList(),allocation.getAllocationId(), FileTableEnum.ALLOCATION_RECTIFICATION.value);
    }
@@ -842,7 +862,9 @@
    }
    @Override
    public Integer authority(String allocationNum,Integer userId) {
    public AppAuthority authority(String allocationNum,Integer userId) {
        //返回数据
        AppAuthority appAuthority = new AppAuthority();
        //获取用户信息
        QxUser user = UserHelper.getCurrentUser();
        //获取交办单信息
@@ -855,27 +877,106 @@
        List<Integer> userList = responsibilityUnitMapper.selectCodeList(SysDictTypeEnum.SYS_JBD.getValue(),user.getUserId());
        if(CollectionUtils.isNotEmpty(userList)){
            //可以看,可以填
            return 1;
            if (allocation.getState()>30){
                appAuthority.setCode(2);
                appAuthority.setName(AppAllocationStateEnum.COMPLETED.name);
            }else {
                appAuthority.setCode(1);
                appAuthority.setName(AppAllocationStateEnum.COMPLETED.name);
            }
            return appAuthority;
        }
        if(Objects.nonNull(user.getUnitId())&&user.getUnitId()!=0){
            String code = responsibilityUnitMapper.selectAreaCode(user.getUnitId());
            if (code.length() > 6 && allocation.getUnitId().equals(user.getUnitId())) {
                if (allocation.getState().equals(AllocationApproveEnum.UNDER_RECTIFICATION.value)){
                    return 1;
                }else{
                    return 2;
                    appAuthority.setCode(1);
                    appAuthority.setName(AppAllocationStateEnum.TO_BE_PROCESSED.name);
                    return appAuthority;
                }else if (allocation.getState().equals(AllocationApproveEnum.IN_APPROVAL.value)){
                    appAuthority.setCode(2);
                    appAuthority.setName(AppAllocationStateEnum.TO_BE_COMPLETED.name);
                    return appAuthority;
                }else {
                    appAuthority.setCode(2);
                    appAuthority.setName(AppAllocationStateEnum.COMPLETED.name);
                    return appAuthority;
                }
            } else if (code.length() <= 6){
                if (allocation.getState().equals(AllocationApproveEnum.IN_APPROVAL.value)){
                    return 1;
                }else{
                    return 2;
                    appAuthority.setCode(1);
                    appAuthority.setName(AppAllocationStateEnum.TO_BE_PROCESSED.name);
                    return appAuthority;
                }else if (allocation.getState().equals(AllocationApproveEnum.UNDER_RECTIFICATION.value)){
                    appAuthority.setCode(2);
                    appAuthority.setName(AppAllocationStateEnum.TO_BE_COMPLETED.name);
                    return appAuthority;
                }else {
                    appAuthority.setCode(2);
                    appAuthority.setName(AppAllocationStateEnum.COMPLETED.name);
                    return appAuthority;
                }
            }
        }
        //不能看,不能填
        return 3;
        appAuthority.setCode(3);
        appAuthority.setName("没有权限");
        return appAuthority;
    }
    /**
     * 修改责任单位
     *
     * @param id
     * @param unitId
     */
    @Override
    @Transactional
    public void updataUnit(Integer id, Integer unitId,Integer polluteType) {
        AllocationLog allocationLog = new AllocationLog();
        //获取用户信息
        QxUser user = UserHelper.getCurrentUser();
        Allocation allocation = allocationMapper.selectById(id);
        if (!ObjectUtils.isEmpty(unitId)){
            ResponsibilityUnit unitName1 = getUnitName(allocation.getUnitId());
            ResponsibilityUnit unitName2 = getUnitName(unitId);
            allocation.setUnitId(unitId);
            allocationLog.setContent(unitName1.getUnitName()+"----修改成----"+unitName2.getUnitName());
        }
        if (!ObjectUtils.isEmpty(polluteType)){
            SysDictData sysDictData1 = sysDictTypeService.listOne(Constants.WU_RAN_LEI_XING,allocation.getPolluteType().toString());
            SysDictData sysDictData2 = sysDictTypeService.listOne(Constants.WU_RAN_LEI_XING, polluteType.toString());
            allocation.setPolluteType(polluteType);
            allocationLog.setPolluteType(sysDictData1.getDataValue()+"----修改成----"+sysDictData2.getDataValue());
        }
        allocationMapper.updateById(allocation);
        //日志
        HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
        allocationLog.setAllocationNum(allocation.getAllocationNum());
        allocationLog.setIp(WebUtils.getIpAddr(request));
        allocationLog.setAccountId(user.getUserId());
        allocationLog.setAccount(user.getAccount());
        allocationLog.setUserName(user.getUserName());
        allocationLog.setCreateTime(new Date());
        allocationLogMapper.insert(allocationLog);
    }
    /**
     * 查看修改记录
     *
     * @param allocationNum
     * @return
     */
    @Override
    public List<AllocationLog> getLog(String allocationNum) {
        LambdaQueryWrapper<AllocationLog> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(AllocationLog::getAllocationNum,allocationNum);
        wrapper.orderByAsc(AllocationLog::getCreateTime);
        List<AllocationLog> allocationLogs = allocationLogMapper.selectList(wrapper);
        return allocationLogs;
    }
    @Override
@@ -918,4 +1019,11 @@
        }
        return f;
    }
    private ResponsibilityUnit getUnitName(Integer unitId){
        ResponsibilityUnit responsibilityUnit = responsibilityUnitMapper.selectById(unitId);
          return   responsibilityUnit;
    }
}