|  |  |  | 
|---|
|  |  |  | package com.doumee.service.business.impl; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.doumee.core.model.LoginUserInfo; | 
|---|
|  |  |  | import com.doumee.core.model.PageData; | 
|---|
|  |  |  | import com.doumee.core.model.PageWrap; | 
|---|
|  |  |  | import com.doumee.core.utils.Constants; | 
|---|
|  |  |  | import com.doumee.core.utils.Utils; | 
|---|
|  |  |  | import com.doumee.dao.business.NoticesMapper; | 
|---|
|  |  |  | import com.doumee.dao.business.model.Notices; | 
|---|
|  |  |  | import com.doumee.dao.business.join.NoticesJoinMapper; | 
|---|
|  |  |  | import com.doumee.dao.business.model.*; | 
|---|
|  |  |  | import com.doumee.dao.business.vo.ApplyNoticeVO; | 
|---|
|  |  |  | import com.doumee.service.business.NoticesService; | 
|---|
|  |  |  | 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 com.github.xiaoymin.knife4j.core.util.CollectionUtils; | 
|---|
|  |  |  | import com.github.yulichang.wrapper.MPJLambdaWrapper; | 
|---|
|  |  |  | import org.apache.shiro.SecurityUtils; | 
|---|
|  |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
|---|
|  |  |  | import org.springframework.stereotype.Service; | 
|---|
|  |  |  | import org.springframework.util.CollectionUtils; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  | import java.util.stream.Collectors; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 系统消息信息表Service实现 | 
|---|
|  |  |  | * @author 江蹄蹄 | 
|---|
|  |  |  | * @date 2024/01/15 15:07 | 
|---|
|  |  |  | * @date 2024/01/16 10:03 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Service | 
|---|
|  |  |  | public class NoticesServiceImpl implements NoticesService { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private NoticesMapper noticesMapper; | 
|---|
|  |  |  | private NoticesJoinMapper noticesMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public Integer create(Notices notices) { | 
|---|
|  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public PageData<Notices> findPage(PageWrap<Notices> pageWrap) { | 
|---|
|  |  |  | IPage<Notices> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); | 
|---|
|  |  |  | QueryWrapper<Notices> queryWrapper = new QueryWrapper<>(); | 
|---|
|  |  |  | MPJLambdaWrapper<Notices> queryWrapper = new MPJLambdaWrapper<>(); | 
|---|
|  |  |  | Utils.MP.blankToNull(pageWrap.getModel()); | 
|---|
|  |  |  | if (pageWrap.getModel().getId() != null) { | 
|---|
|  |  |  | queryWrapper.lambda().eq(Notices::getId, pageWrap.getModel().getId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (pageWrap.getModel().getCreator() != null) { | 
|---|
|  |  |  | queryWrapper.lambda().eq(Notices::getCreator, pageWrap.getModel().getCreator()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (pageWrap.getModel().getCreateDate() != null) { | 
|---|
|  |  |  | queryWrapper.lambda().ge(Notices::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())); | 
|---|
|  |  |  | queryWrapper.lambda().le(Notices::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (pageWrap.getModel().getEditor() != null) { | 
|---|
|  |  |  | queryWrapper.lambda().eq(Notices::getEditor, pageWrap.getModel().getEditor()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (pageWrap.getModel().getEditDate() != null) { | 
|---|
|  |  |  | queryWrapper.lambda().ge(Notices::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate())); | 
|---|
|  |  |  | queryWrapper.lambda().le(Notices::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (pageWrap.getModel().getIsdeleted() != null) { | 
|---|
|  |  |  | queryWrapper.lambda().eq(Notices::getIsdeleted, pageWrap.getModel().getIsdeleted()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (pageWrap.getModel().getRemark() != null) { | 
|---|
|  |  |  | queryWrapper.lambda().eq(Notices::getRemark, pageWrap.getModel().getRemark()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (pageWrap.getModel().getTitle() != null) { | 
|---|
|  |  |  | queryWrapper.lambda().eq(Notices::getTitle, pageWrap.getModel().getTitle()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (pageWrap.getModel().getInfo() != null) { | 
|---|
|  |  |  | queryWrapper.lambda().eq(Notices::getInfo, pageWrap.getModel().getInfo()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (pageWrap.getModel().getContent() != null) { | 
|---|
|  |  |  | queryWrapper.lambda().eq(Notices::getContent, pageWrap.getModel().getContent()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (pageWrap.getModel().getObjId() != null) { | 
|---|
|  |  |  | queryWrapper.lambda().eq(Notices::getObjId, pageWrap.getModel().getObjId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (pageWrap.getModel().getObjType() != null) { | 
|---|
|  |  |  | queryWrapper.lambda().eq(Notices::getObjType, pageWrap.getModel().getObjType()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (pageWrap.getModel().getObjName() != null) { | 
|---|
|  |  |  | queryWrapper.lambda().eq(Notices::getObjName, pageWrap.getModel().getObjName()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (pageWrap.getModel().getType() != null) { | 
|---|
|  |  |  | queryWrapper.lambda().eq(Notices::getType, pageWrap.getModel().getType()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (pageWrap.getModel().getParam1() != null) { | 
|---|
|  |  |  | queryWrapper.lambda().eq(Notices::getParam1, pageWrap.getModel().getParam1()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (pageWrap.getModel().getParam2() != null) { | 
|---|
|  |  |  | queryWrapper.lambda().eq(Notices::getParam2, pageWrap.getModel().getParam2()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (pageWrap.getModel().getParam3() != null) { | 
|---|
|  |  |  | queryWrapper.lambda().eq(Notices::getParam3, pageWrap.getModel().getParam3()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (pageWrap.getModel().getParam4() != null) { | 
|---|
|  |  |  | queryWrapper.lambda().eq(Notices::getParam4, pageWrap.getModel().getParam4()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (pageWrap.getModel().getParam5() != null) { | 
|---|
|  |  |  | queryWrapper.lambda().eq(Notices::getParam5, pageWrap.getModel().getParam5()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (pageWrap.getModel().getUserId() != null) { | 
|---|
|  |  |  | queryWrapper.lambda().eq(Notices::getUserId, pageWrap.getModel().getUserId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (pageWrap.getModel().getCompanyId() != null) { | 
|---|
|  |  |  | queryWrapper.lambda().eq(Notices::getCompanyId, pageWrap.getModel().getCompanyId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (pageWrap.getModel().getPalt() != null) { | 
|---|
|  |  |  | queryWrapper.lambda().eq(Notices::getPalt, pageWrap.getModel().getPalt()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (pageWrap.getModel().getStatus() != null) { | 
|---|
|  |  |  | queryWrapper.lambda().eq(Notices::getStatus, pageWrap.getModel().getStatus()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (pageWrap.getModel().getReaded() != null) { | 
|---|
|  |  |  | queryWrapper.lambda().eq(Notices::getReaded, pageWrap.getModel().getReaded()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | for(PageWrap.SortData sortData: pageWrap.getSorts()) { | 
|---|
|  |  |  | if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { | 
|---|
|  |  |  | queryWrapper.orderByDesc(sortData.getProperty()); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | queryWrapper.orderByAsc(sortData.getProperty()); | 
|---|
|  |  |  | LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //企业人员查看本企业数据 | 
|---|
|  |  |  | if(loginUserInfo.getType().equals(Constants.ONE)||loginUserInfo.getType().equals(Constants.TWO)){ | 
|---|
|  |  |  | queryWrapper.eq(Notices::getCompanyId, loginUserInfo.getCompanyId()); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | if(!(Constants.equalsInteger(pageWrap.getModel().getQueryType(),Constants.NoticeObjectType.COMPANY_USER_APPLY.getKey()) | 
|---|
|  |  |  | || Constants.equalsInteger(pageWrap.getModel().getQueryType(),Constants.NoticeObjectType.CONTRACT.getKey()))){ | 
|---|
|  |  |  | if(loginUserInfo.getCompanyIdList()!=null && loginUserInfo.getCompanyIdList().size()>0){ | 
|---|
|  |  |  | queryWrapper.in(Notices::getCompanyId, loginUserInfo.getCompanyIdList()); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | queryWrapper.eq(Notices::getCompanyId, -1); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return PageData.from(noticesMapper.selectPage(page, queryWrapper)); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | queryWrapper.selectAll(Notices.class); | 
|---|
|  |  |  | queryWrapper.selectAs(Company::getName,Notices::getCompanyName); | 
|---|
|  |  |  | queryWrapper.leftJoin(Company.class,Company::getId,Notices::getCompanyId); | 
|---|
|  |  |  | queryWrapper.ne(Notices::getType, Constants.NoticeType.SIX.getStatus()); | 
|---|
|  |  |  | queryWrapper.eq(Notices::getIsdeleted,Constants.ZERO); | 
|---|
|  |  |  | if (pageWrap.getModel().getIsdeleted() != null) { | 
|---|
|  |  |  | queryWrapper.eq(Notices::getIsdeleted, pageWrap.getModel().getIsdeleted()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (pageWrap.getModel().getObjType() != null) { | 
|---|
|  |  |  | queryWrapper.eq(Notices::getObjType, pageWrap.getModel().getObjType()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (pageWrap.getModel().getType() != null) { | 
|---|
|  |  |  | queryWrapper.eq(Notices::getType, pageWrap.getModel().getType()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (pageWrap.getModel().getCompanyId() != null) { | 
|---|
|  |  |  | queryWrapper.eq(Notices::getCompanyId, pageWrap.getModel().getCompanyId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (pageWrap.getModel().getPalt() != null) { | 
|---|
|  |  |  | queryWrapper.eq(Notices::getPalt, pageWrap.getModel().getPalt()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (pageWrap.getModel().getStatus() != null) { | 
|---|
|  |  |  | queryWrapper.eq(Notices::getStatus, pageWrap.getModel().getStatus()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (pageWrap.getModel().getReaded() != null) { | 
|---|
|  |  |  | queryWrapper.eq(Notices::getReaded, pageWrap.getModel().getReaded()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(pageWrap.getModel().getQueryType()!=null){ | 
|---|
|  |  |  | if(pageWrap.getModel().getQueryType().equals(Constants.ZERO)){ | 
|---|
|  |  |  | queryWrapper.in(Notices::getObjType,new Integer[]{Constants.NoticeObjectType.INSURANCE_APPLY.getKey(), | 
|---|
|  |  |  | Constants.NoticeObjectType.APPLY_CHANGE.getKey(), | 
|---|
|  |  |  | Constants.NoticeObjectType.DISPATCH_UNIT.getKey(), | 
|---|
|  |  |  | Constants.NoticeObjectType.CHANGE_FACTORY.getKey()}); | 
|---|
|  |  |  | } else if(pageWrap.getModel().getQueryType().equals(Constants.ONE)){ | 
|---|
|  |  |  | queryWrapper.in(Notices::getObjType,new Integer[]{Constants.NoticeObjectType.TAXES.getKey() }); | 
|---|
|  |  |  | } else if(pageWrap.getModel().getQueryType().equals(Constants.TWO)){ | 
|---|
|  |  |  | queryWrapper.in(Notices::getObjType,new Integer[]{Constants.NoticeObjectType.SETTLE_CLAIMS.getKey() }); | 
|---|
|  |  |  | }else if(pageWrap.getModel().getQueryType().equals(Constants.THREE)){ | 
|---|
|  |  |  | queryWrapper.notIn(Notices::getType,new Integer[]{Constants.NoticeObjectType.CONTRACT.getKey(),Constants.NoticeObjectType.SOLUTIONS.getKey(),Constants.NoticeObjectType.COMPANY_USER_APPLY.getKey() }); | 
|---|
|  |  |  | }else if(pageWrap.getModel().getQueryType().equals(Constants.FOUR)){ | 
|---|
|  |  |  | queryWrapper.in(Notices::getType,new Integer[]{Constants.NoticeType.SEVEN.getStatus() }); | 
|---|
|  |  |  | } else if(pageWrap.getModel().getQueryType().equals(Constants.SIX)){ | 
|---|
|  |  |  | queryWrapper.in(Notices::getObjType,new Integer[]{Constants.NoticeObjectType.CONTRACT.getKey() }); | 
|---|
|  |  |  | }else if(pageWrap.getModel().getQueryType().equals(Constants.SEVEN)){ | 
|---|
|  |  |  | queryWrapper.in(Notices::getObjType,new Integer[]{Constants.NoticeObjectType.SOLUTIONS.getKey() }); | 
|---|
|  |  |  | }else if(pageWrap.getModel().getQueryType().equals(8)){ | 
|---|
|  |  |  | queryWrapper.in(Notices::getObjType,new Integer[]{Constants.NoticeObjectType.COMPANY_USER_APPLY.getKey() }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(CollectionUtils.isNotEmpty(pageWrap.getSorts())){ | 
|---|
|  |  |  | for(PageWrap.SortData sortData: pageWrap.getSorts()) { | 
|---|
|  |  |  | if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { | 
|---|
|  |  |  | queryWrapper.orderByDesc(sortData.getProperty()); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | queryWrapper.orderByAsc(sortData.getProperty()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | queryWrapper.orderByDesc(Notices::getCreateDate); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | PageData<Notices> pageData = PageData.from(noticesMapper.selectJoinPage(page,Notices.class, queryWrapper)); | 
|---|
|  |  |  | pageData.getRecords().forEach(i->{ | 
|---|
|  |  |  | i.setTypeDetail( | 
|---|
|  |  |  | Constants.NoticeType.getDetail(i.getType(),i.getObjType()) | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | return pageData; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | 
|---|
|  |  |  | QueryWrapper<Notices> wrapper = new QueryWrapper<>(notices); | 
|---|
|  |  |  | return noticesMapper.selectCount(wrapper); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 查询投保单 提醒数量 | 
|---|
|  |  |  | * @param companyId | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public ApplyNoticeVO getApplyNotice(Integer companyId){ | 
|---|
|  |  |  | ApplyNoticeVO applyNoticeVO = new ApplyNoticeVO(); | 
|---|
|  |  |  | applyNoticeVO.setWaitSignNum(Constants.ZERO); | 
|---|
|  |  |  | applyNoticeVO.setRenewalNum(Constants.ZERO); | 
|---|
|  |  |  | List<Notices> noticesList = noticesMapper.selectList(new QueryWrapper<Notices>() | 
|---|
|  |  |  | .lambda() | 
|---|
|  |  |  | .select(Notices::getType) | 
|---|
|  |  |  | .eq(Notices::getPalt,Constants.ONE) | 
|---|
|  |  |  | .eq(Notices::getCompanyId,companyId) | 
|---|
|  |  |  | .eq(Notices::getObjType,Constants.NoticeObjectType.INSURANCE_APPLY.getKey()) | 
|---|
|  |  |  | .eq(Notices::getStatus,Constants.ZERO) | 
|---|
|  |  |  | .eq(Notices::getIsdeleted,Constants.ZERO) | 
|---|
|  |  |  | .in(Notices::getType,Constants.NoticeType.SIX.getStatus(),Constants.NoticeType.ONE.getStatus()) | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | if(CollectionUtils.isNotEmpty(noticesList)){ | 
|---|
|  |  |  | applyNoticeVO.setRenewalNum(noticesList.stream().filter(m->m.getType().equals(Constants.NoticeType.SIX.getStatus())).collect(Collectors.toList()).size()); | 
|---|
|  |  |  | applyNoticeVO.setWaitSignNum(noticesList.size() - applyNoticeVO.getRenewalNum()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return applyNoticeVO ; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 关闭提醒 | 
|---|
|  |  |  | * @param companyId | 
|---|
|  |  |  | * @param type | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void closeApplyNotice(Integer companyId,Integer type){ | 
|---|
|  |  |  | noticesMapper.update(null,new UpdateWrapper<Notices>() | 
|---|
|  |  |  | .lambda() | 
|---|
|  |  |  | .set(Notices::getStatus,Constants.ONE) | 
|---|
|  |  |  | .eq(Notices::getPalt,Constants.ONE) | 
|---|
|  |  |  | .eq(Notices::getCompanyId,companyId) | 
|---|
|  |  |  | .eq(Notices::getStatus,Constants.ZERO) | 
|---|
|  |  |  | .eq(Notices::getObjType,Constants.NoticeObjectType.INSURANCE_APPLY.getKey()) | 
|---|
|  |  |  | .eq(Notices::getType,type) | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|