郑永安
2023-06-19 f65443d8abeaedc9d102324565e8368e7c9d90c8
src/main/java/com/gk/firework/Service/ServiceImpl/EnterprisePersonServiceImpl.java
对比新文件
@@ -0,0 +1,219 @@
package com.gk.firework.Service.ServiceImpl;
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.firework.Domain.EnterprisePerson;
import com.gk.firework.Domain.EnterpriseResource;
import com.gk.firework.Domain.Enum.PersonnelCategory;
import com.gk.firework.Domain.Exception.BusinessException;
import com.gk.firework.Domain.UserInfo;
import com.gk.firework.Domain.Utils.Constants;
import com.gk.firework.Domain.Utils.Properties;
import com.gk.firework.Domain.Utils.StringUtils;
import com.gk.firework.Domain.Utils.UploadUtil;
import com.gk.firework.Domain.Vo.EnterprisePersonVo;
import com.gk.firework.Mapper.EnterprisePersonMapper;
import com.gk.firework.Service.EnterprisePersonService;
import com.gk.firework.Service.EnterpriseResourceService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.annotation.Id;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.util.*;
@Service("enterprisePersonService")
public class EnterprisePersonServiceImpl extends ServiceImpl<EnterprisePersonMapper, EnterprisePerson> implements EnterprisePersonService {
    @Autowired
    private EnterprisePersonMapper enterprisePersonMapper;
    @Autowired
    private EnterpriseResourceService enterpriseResourceService;
    /**
    * @Description: 分页查询人员
    * @date 2021/3/26 17:59
    */
    @Override
    public IPage selectPage(Page<EnterprisePerson> page, Long id,PersonnelCategory personnelCategory) {
        Map<String, Object> params = new HashMap<>();
        params.put("id", id);
        params.put("category", personnelCategory);
        params.put("tabletype", Constants.PERSON);
        List<EnterprisePerson> list = enterprisePersonMapper.selectPages(page, params);
        page.setRecords(list);
        return page;
    }
    /**
     * @Description: 新增用户
     * @date 2021/3/26 17:59
     */
    @Override
    @Transactional
    public void addEnterprisePerson(EnterprisePersonVo enterprisePersonVo, UserInfo user) throws Exception {
        //新增人员
        EnterprisePerson person = new EnterprisePerson();
        person.setName(enterprisePersonVo.getName());
        person.setPost(enterprisePersonVo.getPost());
        person.setNumber(enterprisePersonVo.getNumber());
        person.setValidstarttime(enterprisePersonVo.getValidstarttime());
        person.setValidendtime(enterprisePersonVo.getValidendtime());
        person.setMemo(enterprisePersonVo.getMemo());
        person.setEnterpriseid(enterprisePersonVo.getEnterpriseid());
        person.setType(enterprisePersonVo.getType());
        person.setIsreview(enterprisePersonVo.getIsreview());
        person.setCreateby(user.getId());
        person.setCreatebyname(user.getUsername());
        person.setCreatetime(new Date());
        person.setValidflag(true);
        this.save(person);
        //新建资源
        List<EnterpriseResource> adds = null;
        if (enterprisePersonVo.getFile() != null && enterprisePersonVo.getFile().length > 0) {
            adds = new ArrayList<>();
            Date now = new Date();
            for (MultipartFile file : enterprisePersonVo.getFile()) {
                String name = UploadUtil.uploadFile(file, Properties.enterprisePath);
                EnterpriseResource er = new EnterpriseResource();
                er.setTabletype(Constants.PERSON);
                er.setFilename(file.getOriginalFilename());
                er.setUrl(Properties.enterprise + name);
                er.setCreatetime(now);
                er.setCreateby(user.getId());
                er.setCreatebyname(user.getUsername());
                er.setBelongid(person.getId());
                er.setValidflag(true);
                adds.add(er);
            }
            //执行
            enterpriseResourceService.saveBatch(adds);
        }
    }
    /**
    * @Description: 修改人员信息
    * @date 2021/3/26 18:37
    */
    @Override
    public void modEnterprisePerson(EnterprisePersonVo enterprisePersonVo, UserInfo user) throws Exception {
        //修改人员
        EnterprisePerson person = new EnterprisePerson();
        person.setId(enterprisePersonVo.getId());
        person.setName(enterprisePersonVo.getName());
        person.setPost(enterprisePersonVo.getPost());
        person.setNumber(enterprisePersonVo.getNumber());
        person.setValidstarttime(enterprisePersonVo.getValidstarttime());
        person.setValidendtime(enterprisePersonVo.getValidendtime());
        person.setMemo(enterprisePersonVo.getMemo());
        person.setEnterpriseid(enterprisePersonVo.getEnterpriseid());
        person.setType(enterprisePersonVo.getType());
        person.setIsreview(enterprisePersonVo.getIsreview());
        person.setCreateby(user.getId());
        person.setCreatebyname(user.getUsername());
        person.setCreatetime(new Date());
        person.setValidflag(true);
        this.updateById(person);
        //删除资源
        List<Long> imgIds = enterprisePersonVo.getImgids();
        List<EnterpriseResource> dels = null;
        if (imgIds != null && imgIds.size() > 0) {
            dels = new ArrayList<>();
            Date now = new Date();
            for (Long id:imgIds) {
                EnterpriseResource er = new EnterpriseResource();
                er.setId(id);
                er.setValidflag(false);
                er.setUpdateby(user.getId());
                er.setUpdatebyname(user.getUsername());
                er.setUpdatetime(now);
                dels.add(er);
            }
            //删除
            enterpriseResourceService.updateBatchById(dels);
        }
        //2.新增
        List<EnterpriseResource> adds = null;
        if (enterprisePersonVo.getFile() !=null && enterprisePersonVo.getFile().length > 0) {
            adds = new ArrayList<>();
            Date now = new Date();
            for (MultipartFile file : enterprisePersonVo.getFile()) {
                String name = UploadUtil.uploadFile(file, Properties.enterprisePath);
                EnterpriseResource er = new EnterpriseResource();
                er.setTabletype(Constants.PERSON);
                er.setFilename(file.getOriginalFilename());
                er.setUrl(Properties.enterprise + name);
                er.setCreatetime(now);
                er.setCreateby(user.getId());
                er.setCreatebyname(user.getUsername());
                er.setBelongid(enterprisePersonVo.getId());
                er.setValidflag(true);
                adds.add(er);
            }
            //执行
            enterpriseResourceService.saveBatch(adds);
        }
    }
    /**
    * @Description: 删除人员
    * @date 2021/3/26 18:58
    */
    @Override
    public void delEnterprisePerson(Long id, UserInfo user) {
        EnterprisePerson person = new EnterprisePerson();
        person.setId(id);
        person.setUpdateby(user.getId());
        person.setCreatebyname(user.getUsername());
        person.setCreatetime(new Date());
        person.setValidflag(false);
        this.updateById(person);
    }
    /**
    * @Description: 校验安全|特种人员资格  新增|修改
    * @date 2021/4/6 15:03
    */
    @Override
    public void checkEnterprisePerson(EnterprisePersonVo enterprisePersonVo) {
        if (StringUtils.isBlank(enterprisePersonVo.getName())) {
            throw new BusinessException("姓名不能为空");
        }
        if (StringUtils.isBlank(enterprisePersonVo.getPost())) {
            throw new BusinessException("职务不能为空");
        }
        if (StringUtils.isBlank(enterprisePersonVo.getNumber())) {
            throw new BusinessException("证书编号不能为空");
        }
        if (StringUtils.isBlank(enterprisePersonVo.getNumber())) {
            throw new BusinessException("证书编号不能为空");
        }
        if (enterprisePersonVo.getValidstarttime() == null
                || enterprisePersonVo.getValidendtime() == null) {
            throw new BusinessException("证书有效期不能为空");
        }
        //特种人员 是否按时复审必填
        if (enterprisePersonVo.getType() == PersonnelCategory.SPECIAL
                && enterprisePersonVo.getIsreview() == null) {
            throw new BusinessException("是否按时复审不能为空");
        }
    }
}