package com.panzhihua.service_community.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.panzhihua.common.model.dtos.civil.*; import com.panzhihua.common.model.dtos.property.CommonPage; import com.panzhihua.common.model.vos.R; import com.panzhihua.common.model.vos.civil.ComActSocialWorkerDetailsVO; import com.panzhihua.common.model.vos.civil.ComActSocialWorkerVO; import com.panzhihua.common.utlis.StringUtils; import com.panzhihua.service_community.dao.*; import com.panzhihua.service_community.entity.ComActColumn; import com.panzhihua.service_community.entity.ComActSocialOrg; import com.panzhihua.service_community.entity.ComActSocialWorker; import com.panzhihua.service_community.model.dos.ComActDO; import com.panzhihua.service_community.model.dos.ComStreetDO; import com.panzhihua.service_community.service.ComActSocialWorkerService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; import static java.util.Objects.nonNull; import static org.apache.commons.lang3.StringUtils.isNotBlank; /** * 社工(ComActSocialWorker)表服务实现类 * * @author makejava * @since 2021-10-25 10:56:48 */ @Slf4j @Service public class ComActSocialWorkerServiceImpl extends ServiceImpl implements ComActSocialWorkerService { @Resource private ComActSocialWorkerDao comActSocialWorkerMapper; @Resource private ComStreetDAO comStreetDAO; @Resource private ComActSocialOrgDao comActSocialOrgMapper; @Resource private ComActDAO comActDAO; @Resource private ComActActivityDAO comActActivityDAO; @Resource private ComActColumnDao comActColumnDao; /** * 新增社工 * @param comActSocialWorkerAddDTO * @return 新增结果 */ @Override public R add(ComActSocialWorkerAddDTO comActSocialWorkerAddDTO){ ComActSocialWorker comActSocialWorker = comActSocialWorkerMapper.selectOne(new LambdaQueryWrapper() .eq(ComActSocialWorker::getTelephone, comActSocialWorkerAddDTO.getTelephone()) .eq(ComActSocialWorker::getCommunityId, comActSocialWorkerAddDTO.getCommunityId())); if (nonNull(comActSocialWorker)) { return R.fail("手机号已存在"); } ComActSocialWorker comActSocialWorker1 = comActSocialWorkerMapper.selectOne(new LambdaQueryWrapper() .eq(ComActSocialWorker::getIdCard, comActSocialWorkerAddDTO.getIdCard()) .eq(ComActSocialWorker::getCommunityId, comActSocialWorkerAddDTO.getCommunityId())); if (nonNull(comActSocialWorker1)) { return R.fail("当前身份证号码已存在社工"); } ComActSocialWorker comActSocialWorkerDO = new ComActSocialWorker(); BeanUtils.copyProperties(comActSocialWorkerAddDTO, comActSocialWorkerDO); comActSocialWorkerDO.setCreateBy(comActSocialWorkerAddDTO.getUserId()); comActSocialWorkerDO.setCreateAt(new Date()); if(comActSocialWorkerMapper.insert(comActSocialWorkerDO)>0){ return R.ok(); } return R.fail(); } /** * 修改社工 * @param comActSocialWorkerEditDTO * @return 维护结果 */ @Override public R edit(ComActSocialWorkerEditDTO comActSocialWorkerEditDTO){ ComActSocialWorker comActSocialWorkerDO = new ComActSocialWorker(); BeanUtils.copyProperties(comActSocialWorkerEditDTO, comActSocialWorkerDO); //comActSocialWorkerDO.setUpdateAt(new Date()); updateWorkerSkill(comActSocialWorkerDO); if(comActSocialWorkerMapper.updateById(comActSocialWorkerDO)>0){ return R.ok(); } return R.fail(); } private void updateWorkerSkill(ComActSocialWorker socialWorker) { String skillType = socialWorker.getSkillType(); if (isNotBlank(skillType)) { List skillList = Arrays.asList(skillType.split(",")); List list = new ArrayList(skillList); list.remove(socialWorker.toString()); StringBuilder sb = new StringBuilder(); StringBuilder sb1 = new StringBuilder(); for (int i = 0; i < list.size(); i++) { String skillId = list.get(i); ComActColumn skillColumn = comActColumnDao.selectById(skillId); if (i < list.size() - 1) { sb.append(skillId); sb.append(","); sb1.append(skillColumn.getName()); sb1.append(","); } else { sb.append(skillId); sb1.append(skillColumn.getName()); } } socialWorker.setSkillType(sb.toString()); socialWorker.setSkillTypeName(sb1.toString()); } } /** * 分页查找社工 * @param pageComActSocialWorkerDTO * @return 维护结果 */ @Override public R> query(PageComActSocialWorkerDTO pageComActSocialWorkerDTO){ Page page = new Page(1,10); if(pageComActSocialWorkerDTO.getPageNum()!=null) { page.setCurrent(pageComActSocialWorkerDTO.getPageNum()); } if(pageComActSocialWorkerDTO.getPageSize()!=null) { page.setSize(pageComActSocialWorkerDTO.getPageSize()); } return R.ok(comActSocialWorkerMapper.findByPage(page, pageComActSocialWorkerDTO)); } /** * 删除社工 * @param ComActSocialWorkerDeleteDTO * @return 平台用户信息 */ @Override public R delete(ComActSocialWorkerDeleteDTO ComActSocialWorkerDeleteDTO){ return R.ok(this.comActSocialWorkerMapper.deleteById(ComActSocialWorkerDeleteDTO.getId())); } /** * 查询社工详细信息 * @param id 社工 id * @return 查找结果 */ @Override public R comActSocialWorkerDetails(Long id){ ComActSocialWorkerVO comActSocialWorkerDO = comActSocialWorkerMapper.selectOneById(id); return R.ok(comActSocialWorkerDO); } @Override public R export(List lis, Long communityId) { if(!CollectionUtils.isEmpty(lis)){ List list=new ArrayList<>(); for(ComActSocialWorkerExcelVO comActSocialWorkerExcelVO:lis) { ComActSocialWorker comActSocialWorkerDO = new ComActSocialWorker(); BeanUtils.copyProperties(comActSocialWorkerExcelVO,comActSocialWorkerDO); if(StringUtils.isNotEmpty(comActSocialWorkerExcelVO.getCommunityId())){ ComActDO comActDO= comActDAO.selectOne(new QueryWrapper().eq("name",comActSocialWorkerExcelVO.getCommunityId())); if(comActDO!=null){ comActSocialWorkerDO.setCommunityId(comActDO.getCommunityId()); } } if(StringUtils.isNotEmpty(comActSocialWorkerExcelVO.getGen())){ if("男".equals(comActSocialWorkerExcelVO.getGen())){ comActSocialWorkerDO.setGen(1); } else { comActSocialWorkerDO.setGen(0); } } if(StringUtils.isNotEmpty(comActSocialWorkerExcelVO.getCredential())){ if("是".equals(comActSocialWorkerExcelVO.getCredential())){ comActSocialWorkerDO.setCredential(1); } else { comActSocialWorkerDO.setCredential(0); } } if(StringUtils.isNotEmpty(comActSocialWorkerExcelVO.getCredential())){ if("是".equals(comActSocialWorkerExcelVO.getCredential())){ comActSocialWorkerDO.setCredential(1); } else { comActSocialWorkerDO.setCredential(0); } } list.add(comActSocialWorkerDO); } this.saveBatch(list); } return R.ok(); } @Override public R activity(CommonPage commonPage) { return R.ok(comActSocialWorkerMapper.selectActivity(new Page(commonPage.getPage(),commonPage.getSize()),commonPage.getParamId())); } @Override public R activityList(CommonPage commonPage) { return R.ok(comActActivityDAO.selectActivityBySocialWorker(new Page(commonPage.getPage(),commonPage.getSize()),commonPage)); } }