package com.gk.hotwork.Service.ServiceImpl; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.Map; 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 com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gk.hotwork.Domain.CompanyInfo; import com.gk.hotwork.Domain.SafetyFacilityInspection; import com.gk.hotwork.Domain.SafetyFacilityProcessflow; import com.gk.hotwork.Domain.SafetyInspectionItemDeduction; import com.gk.hotwork.Domain.UserInfo; import com.gk.hotwork.Mapper.CompanyInfoMapper; import com.gk.hotwork.Mapper.SafetyFacilityInspectionMapper; import com.gk.hotwork.Mapper.SafetyFacilityProcessflowMapper; import com.gk.hotwork.Mapper.UserInfoMapper; import com.gk.hotwork.Service.SafetyFacilityInspectionService; @Service("SafetyFacilityInspectionService") @Transactional public class SafetyFacilityInspectionImpl extends ServiceImpl implements SafetyFacilityInspectionService { @Autowired private SafetyFacilityInspectionMapper safetyFacilityInspectionMapper; @Autowired private SafetyFacilityProcessflowMapper safetyFacilityProcessflowMapper; @Autowired private UserInfoMapper userInfoMapper; @Autowired private CompanyInfoMapper companyInfoMapper; @Override public IPage selectPage(Page page, Map filter, UserInfo user) { Date date = new Date(); if (user.getType() == 3 ) { filter.put("createBy", user.getUsername()); } if (user.getType() == 4) { filter.put("expert", user.getId()); } if (user.getType() == 2) { QueryWrapper queryWrapper = new QueryWrapper(); queryWrapper.eq("city", user.getCity()); queryWrapper.eq("province", user.getProvince()); List list = companyInfoMapper.selectList(queryWrapper); List companyList = new ArrayList(); for (CompanyInfo companyInfo : list) { companyList.add(companyInfo.getCompany()); } filter.put("company", companyList); } if("安科院".equals(user.getCompany())){ filter.remove("createBy"); filter.remove("company"); } IPage res = safetyFacilityInspectionMapper.selectPages(page, filter); List list = new ArrayList(); for (SafetyFacilityInspection safetyFacilityInspection : res.getRecords()) { if (safetyFacilityInspection.getProgress() == 10 && safetyFacilityInspection.getReviewTime() != null && safetyFacilityInspection.getReviewTime().before(date)) { safetyFacilityInspection.setProgress(11); this.updateById(safetyFacilityInspection); SafetyFacilityProcessflow flow = new SafetyFacilityProcessflow(); flow.setCheckTime(new Date()); flow.setValidFlag(Byte.valueOf("1")); flow.setCreateBy("SYSTEM"); flow.setUpdateTime(date); flow.setCreateTime(date); flow.setProgressName("评审中"); flow.setResult("预置时间到"); flow.setLinkInspectionId(safetyFacilityInspection.getId()); flow.setProcessBy(user.getRealname()); safetyFacilityProcessflowMapper.insert(flow); safetyFacilityProcessflowMapper.modPending(safetyFacilityInspection.getId()); } if (safetyFacilityInspection.getProgress() == 20 && safetyFacilityInspection.getExamineTime() != null && safetyFacilityInspection.getExamineTime().before(date)) { safetyFacilityInspection.setProgress(21); this.updateById(safetyFacilityInspection); SafetyFacilityProcessflow flow = new SafetyFacilityProcessflow(); flow.setCheckTime(new Date()); flow.setValidFlag(Byte.valueOf("1")); flow.setCreateBy("SYSTEM"); flow.setUpdateTime(date); flow.setCreateTime(date); flow.setProgressName("审查中"); flow.setResult("预置时间到"); flow.setLinkInspectionId(safetyFacilityInspection.getId()); flow.setProcessBy(user.getRealname()); safetyFacilityProcessflowMapper.insert(flow); safetyFacilityProcessflowMapper.modPending(safetyFacilityInspection.getId()); } if (safetyFacilityInspection.getExpert() != null) { String[] expertIds = safetyFacilityInspection.getExpert().split(","); String expertName = ""; List temp = userInfoMapper.selectBatchIds(Arrays.asList(expertIds)); for (UserInfo userInfo : temp) { expertName += "," + userInfo.getRealname(); } safetyFacilityInspection.setExpertName(expertName.substring(1)); } list.add(safetyFacilityInspection); } res.setRecords(list); return res; } @Override public void addOne(SafetyFacilityInspection param, UserInfo user) { Date date = new Date(); String username = user.getUsername(); param.setValidFlag(Byte.valueOf("1")); param.setCreateBy(username); param.setUpdateTime(date); param.setCreateTime(date); param.setSubmitDate(param.getSubmitDate() == null ? date : param.getSubmitDate()); param.setProgress(Integer.valueOf(0)); param.setCompany(param.getCompany() == null ? user.getCompany() : param.getCompany()); this.save(param); } @Override public void modOne(SafetyFacilityInspection param, UserInfo user) { param.setUpdateTime(new Date()); this.updateById(param); } @Override public void delOne(Long id, UserInfo user) { SafetyFacilityInspection object = safetyFacilityInspectionMapper.selectByPrimaryKey(id); object.setValidFlag(Byte.valueOf("0")); object.setUpdateTime(new Date()); this.updateById(object); } @Override public SafetyFacilityInspection selectByPrimaryKey(Long id, UserInfo user) { return safetyFacilityInspectionMapper.selectByPrimaryKey(id); } }