From 5f5f07db32be63e6112ddff7722c1ada10472da5 Mon Sep 17 00:00:00 2001 From: Mr.Shi <1878285526@qq.com> Date: 星期一, 14 八月 2023 18:43:41 +0800 Subject: [PATCH] Merge branch 'master' of ssh://139.186.142.91:29418/productDev/dmMes --- server/src/main/java/doumeemes/service/business/impl/SalaryParamServiceImpl.java | 211 ++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 147 insertions(+), 64 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 c36de3a..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,20 +1,38 @@ 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 com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +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瀹炵幇 @@ -27,9 +45,36 @@ @Autowired private SalaryParamMapper salaryParamMapper; + @Autowired + private DepartmentMapper departmentMapper; + + @Autowired + private MaterialMapper materialMapper; + + @Autowired + private ProceduresMapper proceduresMapper; + @Override public Integer create(SalaryParam salaryParam) { - salaryParamMapper.insert(salaryParam); + LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); + + SalaryParam insert = new SalaryParam(); + insert.setDeleted((byte) Constants.ZERO); + insert.setCreateUser(principal.getId()); + insert.setCreateTime(new Date()); + insert.setUpdateUser(principal.getId()); + insert.setUpdateTime(new Date()); + insert.setRemark(salaryParam.getRemark()); + insert.setRootDepartId(salaryParam.getRootDepartId()); + insert.setDepartId(salaryParam.getDepartId()); + insert.setProcedureId(salaryParam.getProcedureId()); + insert.setMaterialId(salaryParam.getMaterialId()); + insert.setSalary(salaryParam.getSalary()); + insert.setNum(salaryParam.getNum()); + insert.setTimes(salaryParam.getTimes()); + insert.setUnqualified(salaryParam.getUnqualified()); + insert.setType(salaryParam.getType()); + salaryParamMapper.insert(insert); return salaryParam.getId(); } @@ -58,6 +103,25 @@ } @Override + public void update(SalaryParam salaryParam) { + LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); + UpdateWrapper<SalaryParam> wrapper = new UpdateWrapper<>(); + wrapper.lambda() + .eq(SalaryParam::getId,salaryParam.getId()) + .set(SalaryParam::getUpdateTime,new Date()) + .set(SalaryParam::getUpdateUser,principal.getId()) + .set(SalaryParam::getType,salaryParam.getType()) + .set(SalaryParam::getDepartId,salaryParam.getDepartId()) + .set(SalaryParam::getMaterialId,salaryParam.getMaterialId()) + .set(SalaryParam::getProcedureId,salaryParam.getProcedureId()) + .set(SalaryParam::getSalary,salaryParam.getSalary()) + .set(SalaryParam::getNum,salaryParam.getNum()) + .set(SalaryParam::getTimes,salaryParam.getTimes()) + .set(SalaryParam::getUnqualified,salaryParam.getUnqualified()); + salaryParamMapper.update(null,wrapper); + } + + @Override public void updateByIdInBatch(List<SalaryParam> salaryParams) { if (CollectionUtils.isEmpty(salaryParams)) { return; @@ -83,70 +147,12 @@ QueryWrapper<SalaryParam> wrapper = new QueryWrapper<>(salaryParam); return salaryParamMapper.selectList(wrapper); } - + @Override - public PageData<SalaryParam> findPage(PageWrap<SalaryParam> pageWrap) { + public PageData<SalaryParamVO> findPage(PageWrap<SalaryParamDTO> pageWrap) { IPage<SalaryParam> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); - QueryWrapper<SalaryParam> queryWrapper = new QueryWrapper<>(); - Utils.MP.blankToNull(pageWrap.getModel()); - if (pageWrap.getModel().getId() != null) { - queryWrapper.lambda().eq(SalaryParam::getId, pageWrap.getModel().getId()); - } - if (pageWrap.getModel().getDeleted() != null) { - queryWrapper.lambda().eq(SalaryParam::getDeleted, pageWrap.getModel().getDeleted()); - } - if (pageWrap.getModel().getCreateUser() != null) { - queryWrapper.lambda().eq(SalaryParam::getCreateUser, pageWrap.getModel().getCreateUser()); - } - if (pageWrap.getModel().getCreateTime() != null) { - queryWrapper.lambda().ge(SalaryParam::getCreateTime, Utils.Date.getStart(pageWrap.getModel().getCreateTime())); - queryWrapper.lambda().le(SalaryParam::getCreateTime, Utils.Date.getEnd(pageWrap.getModel().getCreateTime())); - } - if (pageWrap.getModel().getUpdateUser() != null) { - queryWrapper.lambda().eq(SalaryParam::getUpdateUser, pageWrap.getModel().getUpdateUser()); - } - if (pageWrap.getModel().getUpdateTime() != null) { - queryWrapper.lambda().ge(SalaryParam::getUpdateTime, Utils.Date.getStart(pageWrap.getModel().getUpdateTime())); - queryWrapper.lambda().le(SalaryParam::getUpdateTime, Utils.Date.getEnd(pageWrap.getModel().getUpdateTime())); - } - if (pageWrap.getModel().getRemark() != null) { - queryWrapper.lambda().eq(SalaryParam::getRemark, pageWrap.getModel().getRemark()); - } - if (pageWrap.getModel().getRootDepartId() != null) { - queryWrapper.lambda().eq(SalaryParam::getRootDepartId, pageWrap.getModel().getRootDepartId()); - } - if (pageWrap.getModel().getDepartId() != null) { - queryWrapper.lambda().eq(SalaryParam::getDepartId, pageWrap.getModel().getDepartId()); - } - if (pageWrap.getModel().getProcedureId() != null) { - queryWrapper.lambda().eq(SalaryParam::getProcedureId, pageWrap.getModel().getProcedureId()); - } - if (pageWrap.getModel().getBomId() != null) { - queryWrapper.lambda().eq(SalaryParam::getBomId, pageWrap.getModel().getBomId()); - } - if (pageWrap.getModel().getSalary() != null) { - queryWrapper.lambda().eq(SalaryParam::getSalary, pageWrap.getModel().getSalary()); - } - if (pageWrap.getModel().getNum() != null) { - queryWrapper.lambda().eq(SalaryParam::getNum, pageWrap.getModel().getNum()); - } - if (pageWrap.getModel().getTimes() != null) { - queryWrapper.lambda().eq(SalaryParam::getTimes, pageWrap.getModel().getTimes()); - } - if (pageWrap.getModel().getUnqualified() != null) { - queryWrapper.lambda().eq(SalaryParam::getUnqualified, pageWrap.getModel().getUnqualified()); - } - if (pageWrap.getModel().getType() != null) { - queryWrapper.lambda().eq(SalaryParam::getType, pageWrap.getModel().getType()); - } - for(PageWrap.SortData sortData: pageWrap.getSorts()) { - if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { - queryWrapper.orderByDesc(sortData.getProperty()); - } else { - queryWrapper.orderByAsc(sortData.getProperty()); - } - } - return PageData.from(salaryParamMapper.selectPage(page, queryWrapper)); + SalaryParamDTO model = pageWrap.getModel(); + return PageData.from(salaryParamMapper.selectPage(page, model)); } @Override @@ -154,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