| | |
| | | package doumeemes.service.business.impl; |
| | | |
| | | import doumeemes.core.constants.ResponseStatus; |
| | | import doumeemes.core.exception.BusinessException; |
| | | import doumeemes.core.model.LoginUserInfo; |
| | | import doumeemes.core.model.PageData; |
| | | import doumeemes.core.model.PageWrap; |
| | | import doumeemes.core.utils.Constants; |
| | | import doumeemes.core.utils.Utils; |
| | | import doumeemes.core.utils.excel.EasyExcelUtil; |
| | | import doumeemes.dao.business.DepartmentMapper; |
| | | import doumeemes.dao.business.MaterialMapper; |
| | | import doumeemes.dao.business.ProceduresMapper; |
| | | import doumeemes.dao.business.SalaryParamMapper; |
| | | import doumeemes.dao.business.model.SalaryParam; |
| | | import doumeemes.dao.business.model.*; |
| | | import doumeemes.dao.business.vo.SalaryParamVO; |
| | | import doumeemes.dao.ext.dto.SalaryParamDTO; |
| | | import doumeemes.dao.ext.dto.SalaryParamImportDTO; |
| | | import doumeemes.service.business.DepartmentService; |
| | | import doumeemes.service.business.SalaryParamService; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | |
| | | import org.apache.shiro.SecurityUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.util.CollectionUtils; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | |
| | | /** |
| | | * 设置类-绩效工资配置表Service实现 |
| | |
| | | |
| | | @Autowired |
| | | private SalaryParamMapper salaryParamMapper; |
| | | |
| | | @Autowired |
| | | private DepartmentMapper departmentMapper; |
| | | |
| | | @Autowired |
| | | private MaterialMapper materialMapper; |
| | | |
| | | @Autowired |
| | | private ProceduresMapper proceduresMapper; |
| | | |
| | | @Override |
| | | public Integer create(SalaryParam salaryParam) { |
| | |
| | | } |
| | | |
| | | @Override |
| | | public PageData<SalaryParam> findPage(PageWrap<SalaryParamDTO> pageWrap) { |
| | | public PageData<SalaryParamVO> findPage(PageWrap<SalaryParamDTO> pageWrap) { |
| | | IPage<SalaryParam> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | SalaryParamDTO model = pageWrap.getModel(); |
| | | return PageData.from(salaryParamMapper.selectPage(page, model)); |
| | |
| | | QueryWrapper<SalaryParam> wrapper = new QueryWrapper<>(salaryParam); |
| | | return salaryParamMapper.selectCount(wrapper); |
| | | } |
| | | |
| | | @Transactional(rollbackFor = {Exception.class,BusinessException.class}) |
| | | @Override |
| | | public void importPlans(MultipartFile file) { |
| | | |
| | | LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); |
| | | if(!Constants.equalsInteger(user.getType(),Constants.USERTYPE.COM)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "对不起,您无权限进行该操作!"); |
| | | } |
| | | //解析excel |
| | | List<SalaryParamImportDTO> plansList = EasyExcelUtil.importExcel(file, 1, 1, SalaryParamImportDTO.class); |
| | | if(plansList == null || plansList.size()==0){ |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "导入数据内容有误!"); |
| | | } |
| | | |
| | | plansList.forEach(s->{ |
| | | if (Objects.isNull(s.getType()) |
| | | || Objects.isNull(s.getDepartName()) |
| | | || Objects.isNull(s.getMaterialCode()) |
| | | || Objects.isNull(s.getProcedureName()) |
| | | || Objects.isNull(s.getNUM())){ |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "导入数据内容有误!"); |
| | | } |
| | | }); |
| | | |
| | | |
| | | for (int i = 0; i < plansList.size(); i++) { |
| | | SalaryParamImportDTO salaryParamImportDTO = plansList.get(i); |
| | | |
| | | QueryWrapper<Department> wrapper = new QueryWrapper<>(); |
| | | wrapper.lambda() |
| | | .eq(Department::getName,salaryParamImportDTO.getDepartName()) |
| | | .eq(Department::getType,Constants.DEPART_TYPE.factory) |
| | | .last("limit 1"); |
| | | Department department = departmentMapper.selectOne(wrapper); |
| | | if (Objects.isNull(department)){ |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "导入数据内容【公司名称】有误!"); |
| | | } |
| | | |
| | | QueryWrapper<Material> materialWrapper = new QueryWrapper<>(); |
| | | materialWrapper.lambda() |
| | | .eq(Material::getCode,salaryParamImportDTO.getMaterialCode()) |
| | | .eq(Material::getRootDepartId,department.getRootId()) |
| | | .last("limit 1"); |
| | | Material material = materialMapper.selectOne(materialWrapper); |
| | | |
| | | if (Objects.isNull(material)){ |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "导入数据内容【产品编码】有误!"); |
| | | } |
| | | if (Objects.nonNull(material) && Objects.equals(material.getName(),salaryParamImportDTO.getMaterialName())){ |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "导入数据内容【产品名称】有误!"); |
| | | } |
| | | QueryWrapper<Procedures> proceduresWrapper = new QueryWrapper<>(); |
| | | proceduresWrapper.lambda() |
| | | .eq(Procedures::getName,salaryParamImportDTO.getProcedureName()) |
| | | .eq(Procedures::getRootDepartId,department.getRootId()) |
| | | .eq(Procedures::getDepartId,department.getId()) |
| | | .last("limit 1"); |
| | | Procedures procedures = proceduresMapper.selectOne(proceduresWrapper); |
| | | if (Objects.isNull(procedures)){ |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "导入数据内容【工序名称】有误!"); |
| | | } |
| | | SalaryParam salaryParam = new SalaryParam(); |
| | | salaryParam.setRootDepartId(department.getRootId()); |
| | | salaryParam.setDepartId(department.getId()); |
| | | salaryParam.setProcedureId(procedures.getId()); |
| | | salaryParam.setMaterialId(material.getId()); |
| | | salaryParam.setSalary(salaryParamImportDTO.getSalary()); |
| | | salaryParam.setNum(salaryParamImportDTO.getNUM()); |
| | | //todo |
| | | // salaryParam.setTimes(); |
| | | // salaryParam.setUnqualified(salaryParamImportDTO.getUnqualified() ); |
| | | // salaryParam.setType(salaryParamImportDTO.getType()); |
| | | create(salaryParam); |
| | | } |
| | | |
| | | } |
| | | } |