| | |
| | | package com.ruoyi.system.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ruoyi.common.basic.PageInfo; |
| | | import com.ruoyi.common.core.domain.R; |
| | |
| | | import com.ruoyi.common.utils.SecurityUtils; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.ruoyi.system.dto.TCrmClinicDTO; |
| | | import com.ruoyi.system.export.TCrmClinicAuditExport; |
| | | import com.ruoyi.system.export.TCrmClinicListExport; |
| | | import com.ruoyi.system.mapper.TCrmClinicMapper; |
| | | import com.ruoyi.system.model.TCrmClinic; |
| | | import com.ruoyi.system.model.TErpProcurement; |
| | | import com.ruoyi.system.query.TCrmClinicQuery; |
| | | import com.ruoyi.system.service.ISysUserService; |
| | | import com.ruoyi.system.service.TCrmClinicService; |
| | | import com.ruoyi.system.service.TErpProcurementService; |
| | | import com.ruoyi.system.vo.TCrmClinicVO; |
| | | import com.ruoyi.system.vo.TCrmSupplierVO; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.text.SimpleDateFormat; |
| | | import java.time.LocalDate; |
| | | import java.util.Arrays; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | |
| | | @Autowired |
| | | private ISysUserService sysUserService; |
| | | @Autowired |
| | | private TErpProcurementService erpProcurementService; |
| | | |
| | | @Override |
| | | public PageInfo<TCrmClinicVO> pageList(TCrmClinicQuery query) { |
| | | |
| | | // TODO 业绩状态查询处理 |
| | | |
| | | query.setCreateTime(LocalDate.now()); |
| | | PageInfo<TCrmClinicVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); |
| | | List<TCrmClinicVO> list = this.baseMapper.pageList(query,pageInfo); |
| | | if(CollectionUtils.isEmpty(list)){ |
| | | return pageInfo; |
| | | } |
| | | |
| | | List<String> clinicIds = list.stream().map(TCrmClinicVO::getId).collect(Collectors.toList()); |
| | | String monthDate = new SimpleDateFormat("yyyy-MM").format(new Date()); |
| | | List<TErpProcurement> procurements = erpProcurementService.list(Wrappers.lambdaQuery(TErpProcurement.class) |
| | | .in(TErpProcurement::getClinicId, clinicIds) |
| | | .in(TErpProcurement::getStatus, Arrays.asList(3,4,5)) |
| | | .likeRight(TErpProcurement::getCreateTime, monthDate)); |
| | | for (TCrmClinicVO tCrmClinicVO : list) { |
| | | List<TErpProcurement> procurementList = procurements.stream().filter(procurement -> procurement.getClinicId().equals(tCrmClinicVO.getId())).collect(Collectors.toList()); |
| | | if(!CollectionUtils.isEmpty(procurementList)){ |
| | | tCrmClinicVO.setMonthPurchaseAmount(procurementList.stream().map(TErpProcurement::getPayMoney).reduce(BigDecimal.ZERO, BigDecimal::add)); |
| | | } |
| | | |
| | | if(Objects.nonNull(tCrmClinicVO.getMonthPurchaseAmount()) && tCrmClinicVO.getMonthPurchaseAmount().compareTo(tCrmClinicVO.getLowProcurementMoney())>0){ |
| | | tCrmClinicVO.setPerformanceStatus(2); |
| | | } |
| | | |
| | | } |
| | | pageInfo.setRecords(list); |
| | | return pageInfo; |
| | | } |
| | | |
| | | @Override |
| | | public PageInfo<TCrmClinicVO> pageAuditList(TCrmClinicQuery query) { |
| | | |
| | | // TODO 业绩状态查询处理 |
| | | |
| | | PageInfo<TCrmClinicVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize()); |
| | | List<TCrmClinicVO> list = this.baseMapper.pageAuditList(query,pageInfo); |
| | | pageInfo.setRecords(list); |
| | |
| | | if(Objects.nonNull(sysUser)){ |
| | | return R.fail(dto.getPhone()+"-账号已存在"); |
| | | } |
| | | dto.setStatus(1); |
| | | this.save(dto); |
| | | // 添加账号 |
| | | SysUser user = new SysUser(); |
| | |
| | | } |
| | | return R.ok(); |
| | | } |
| | | |
| | | @Override |
| | | public List<TCrmClinicAuditExport> exportAudit(TCrmClinicQuery query) { |
| | | List<TCrmClinicAuditExport> list = this.baseMapper.exportAudit(query); |
| | | return list; |
| | | } |
| | | |
| | | @Override |
| | | public List<TCrmClinicListExport> exportList(TCrmClinicQuery query) { |
| | | query.setCreateTime(LocalDate.now()); |
| | | List<TCrmClinicListExport> list = this.baseMapper.exportList(query); |
| | | if(CollectionUtils.isEmpty(list)){ |
| | | return list; |
| | | } |
| | | |
| | | List<String> clinicIds = list.stream().map(TCrmClinicListExport::getId).collect(Collectors.toList()); |
| | | String monthDate = new SimpleDateFormat("yyyy-MM").format(new Date()); |
| | | List<TErpProcurement> procurements = erpProcurementService.list(Wrappers.lambdaQuery(TErpProcurement.class) |
| | | .in(TErpProcurement::getClinicId, clinicIds) |
| | | .in(TErpProcurement::getStatus, Arrays.asList(3,4,5)) |
| | | .likeRight(TErpProcurement::getCreateTime, monthDate)); |
| | | for (TCrmClinicListExport crmClinicListExport : list) { |
| | | List<TErpProcurement> procurementList = procurements.stream().filter(procurement -> procurement.getClinicId().equals(crmClinicListExport.getId())).collect(Collectors.toList()); |
| | | if(!CollectionUtils.isEmpty(procurementList)){ |
| | | crmClinicListExport.setMonthPurchaseAmount(procurementList.stream().map(TErpProcurement::getPayMoney).reduce(BigDecimal.ZERO, BigDecimal::add)); |
| | | } |
| | | |
| | | if(Objects.nonNull(crmClinicListExport.getMonthPurchaseAmount()) && crmClinicListExport.getMonthPurchaseAmount().compareTo(crmClinicListExport.getLowProcurementMoney())>0){ |
| | | crmClinicListExport.setPerformanceStatus(2); |
| | | } |
| | | |
| | | } |
| | | return list; |
| | | } |
| | | } |