|  |  |  | 
|---|
|  |  |  | import com.doumee.core.utils.Utils; | 
|---|
|  |  |  | import com.doumee.dao.business.NoticesMapper; | 
|---|
|  |  |  | import com.doumee.dao.business.join.NoticesJoinMapper; | 
|---|
|  |  |  | import com.doumee.dao.business.model.ApplyChagneDetail; | 
|---|
|  |  |  | import com.doumee.dao.business.model.Company; | 
|---|
|  |  |  | import com.doumee.dao.business.model.InsuranceApply; | 
|---|
|  |  |  | import com.doumee.dao.business.model.Notices; | 
|---|
|  |  |  | 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 org.springframework.beans.factory.annotation.Autowired; | 
|---|
|  |  |  | import org.springframework.stereotype.Service; | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  | import java.util.stream.Collectors; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 系统消息信息表Service实现 | 
|---|
|  |  |  | 
|---|
|  |  |  | LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //企业人员查看本企业数据 | 
|---|
|  |  |  | if(loginUserInfo.getType().equals(Constants.ONE)){ | 
|---|
|  |  |  | if(loginUserInfo.getType().equals(Constants.ONE)||loginUserInfo.getType().equals(Constants.TWO)){ | 
|---|
|  |  |  | queryWrapper.eq(Notices::getCompanyId, loginUserInfo.getCompanyId()); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | if(loginUserInfo.getCompanyIdList()!=null && loginUserInfo.getCompanyIdList().size()>0){ | 
|---|
|  |  |  | queryWrapper.in(Notices::getCompanyId, loginUserInfo.getCompanyIdList()); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | queryWrapper.eq(Notices::getCompanyId, -1); | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | 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())){ | 
|---|
|  |  |  | 
|---|
|  |  |  | PageData<Notices> pageData = PageData.from(noticesMapper.selectJoinPage(page,Notices.class, queryWrapper)); | 
|---|
|  |  |  | pageData.getRecords().forEach(i->{ | 
|---|
|  |  |  | i.setTypeDetail( | 
|---|
|  |  |  | Constants.NoticeType.getDetail(i.getObjType(),i.getType()) | 
|---|
|  |  |  | Constants.NoticeType.getDetail(i.getType(),i.getObjType()) | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | return pageData; | 
|---|
|  |  |  | 
|---|
|  |  |  | 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) | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|