package com.moral.api.service.impl; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.moral.api.entity.Allocation; import com.moral.api.entity.AllocationExtension; import com.moral.api.exception.BusinessException; import com.moral.api.mapper.AllocationExtensionMapper; import com.moral.api.pojo.enums.AllocationExtensionApproveEnum; import com.moral.api.pojo.enums.FileTableEnum; import com.moral.api.pojo.ext.allocation.AllocationExt; import com.moral.api.pojo.ext.allocationextension.AllocationExtensionExt; import com.moral.api.pojo.ext.allocationextension.AllocationExtensionPageExt; import com.moral.api.pojo.query.allocationextension.AllocationExtensionAddCond; import com.moral.api.pojo.query.allocationextension.AllocationExtensionPageCond; import com.moral.api.service.AllocationExtensionService; import com.moral.api.service.AllocationService; import com.moral.api.service.FileTableService; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; /** *

* 交办单延期 服务实现类 *

* deyt template generate * @author JI * @since 2023-09-25 */ @Service public class AllocationExtensionServiceImpl extends ServiceImpl implements AllocationExtensionService { @Autowired private AllocationService allocationService; private final FileTableService fileTableService; public AllocationExtensionServiceImpl( FileTableService fileTableService) { this.fileTableService = fileTableService; } @Override public AllocationExtensionExt extOne(Integer id) { AllocationExtensionExt extensionExt = this.baseMapper.extOne(id); AllocationExt extOne = allocationService.oneAllocation(extensionExt.getAllocationId()); extensionExt.setAllocationNum(extOne.getAllocationNum()) .setEscalationTime(extOne.getEscalationTime()) .setPollutePosition(extOne.getPollutePosition()) .setUnitId(extOne.getUnitId()) .setPolluteType(extOne.getPolluteType()) .setChangeType(extOne.getChangeType()) .setChangeDay(extOne.getChangeDay()) .setEscalationName(extOne.getEscalationName()) .setInvestigationType(extOne.getInvestigationType()) .setProblemDescribe(extOne.getProblemDescribe()) .setEscalationUnitId(extOne.getEscalationUnitId()); extensionExt.setFileBaseList(fileTableService.list(extensionExt.getAllocationId(), FileTableEnum.ALLOCATION_FOUNDATION.value)); extensionExt.setFileList(fileTableService.list(id, FileTableEnum.ALLOCATION_EXTENSION.value)); return extensionExt; } @Override public Page extPage(AllocationExtensionPageCond allocationExtensionPageCond) { List unitList = allocationService.unitResult(); allocationExtensionPageCond.setUnitList(unitList); Integer codeId = allocationService.unitAreaCode(); Page page = this.baseMapper.extPage(allocationExtensionPageCond.getPage().convertPage(), allocationExtensionPageCond); if(CollectionUtils.isNotEmpty(page.getRecords())){ page.getRecords().forEach(it->{ if((CollectionUtils.isEmpty(unitList)&&codeId.equals(1))||codeId.equals(2)){ it.setIsApprove(1); }else { it.setIsApprove(0); } }); } return page; } @Override public boolean save(AllocationExtensionAddCond allocationExtensionAddCond) { return this.save(allocationExtensionAddCond.convert()); } @Override @Transactional public boolean check(Integer id, Integer state) { AllocationExtensionExt extensionExt = this.baseMapper.extOne(id); if(!AllocationExtensionApproveEnum.APPLYING.value.equals(extensionExt.getState())){ throw new BusinessException("审批中才能发起审批!"); } AllocationExtension allocationExtension = new AllocationExtension(); allocationExtension.setId(id); allocationExtension.setState(state); this.baseMapper.updateById(allocationExtension); if(AllocationExtensionApproveEnum.PASS.value.equals(state)){ Allocation allocation = new Allocation(); allocation.setAllocationId(extensionExt.getAllocationId()); allocation.setChangeDay(extensionExt.getChangeDay()+extensionExt.getExtensionNum()); allocationService.updateById(allocation); } return true; } }