From 6a571d05a20840fcb9faf0026ea7abd81700fee3 Mon Sep 17 00:00:00 2001 From: jiaosong <jiaosong6760@dingtalk.com> Date: 星期一, 14 八月 2023 18:05:57 +0800 Subject: [PATCH] # 工资表配置表 联调修改 --- server/src/main/java/doumeemes/service/business/impl/SalaryParamServiceImpl.java | 103 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 101 insertions(+), 2 deletions(-) diff --git a/server/src/main/java/doumeemes/service/business/impl/SalaryParamServiceImpl.java b/server/src/main/java/doumeemes/service/business/impl/SalaryParamServiceImpl.java index 566d872..95da0cb 100644 --- a/server/src/main/java/doumeemes/service/business/impl/SalaryParamServiceImpl.java +++ b/server/src/main/java/doumeemes/service/business/impl/SalaryParamServiceImpl.java @@ -1,13 +1,22 @@ 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; @@ -16,10 +25,14 @@ 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; /** * 璁剧疆绫�-缁╂晥宸ヨ祫閰嶇疆琛⊿ervice瀹炵幇 @@ -31,6 +44,15 @@ @Autowired private SalaryParamMapper salaryParamMapper; + + @Autowired + private DepartmentMapper departmentMapper; + + @Autowired + private MaterialMapper materialMapper; + + @Autowired + private ProceduresMapper proceduresMapper; @Override public Integer create(SalaryParam salaryParam) { @@ -127,7 +149,7 @@ } @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)); @@ -138,4 +160,81 @@ 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(), "瀵逛笉璧凤紝鎮ㄦ棤鏉冮檺杩涜璇ユ搷浣滐紒"); + } + //瑙f瀽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); + } + + } } -- Gitblit v1.9.3