liujie
1 天以前 3ae5f86787af4dca085e3013802c29b20a2a9d20
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpMaintenanceReminderServiceImpl.java
@@ -1,10 +1,21 @@
package com.ruoyi.system.service.impl;
import com.ruoyi.system.model.TErpMaintenanceReminder;
import com.ruoyi.system.mapper.TErpMaintenanceReminderMapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.common.basic.PageInfo;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.system.mapper.*;
import com.ruoyi.system.model.*;
import com.ruoyi.system.query.TErpMaintenanceReminderQuery;
import com.ruoyi.system.service.TErpMaintenanceReminderService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.system.vo.TErpMaintenanceReminderDetailVo;
import com.ruoyi.system.vo.TErpMaintenanceReminderListVo;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import java.util.stream.Collectors;
/**
 * <p>
@@ -17,4 +28,113 @@
@Service
public class TErpMaintenanceReminderServiceImpl extends ServiceImpl<TErpMaintenanceReminderMapper, TErpMaintenanceReminder> implements TErpMaintenanceReminderService {
    @Resource
    private TErpGoodsTypeMapper erpGoodsTypeMapper;
    @Resource
    private SysUserMapper sysUserMapper;
    @Resource
    private TErpGoodsMapper erpGoodsMapper;
    @Resource
    private TErpGoodsUnitMapper erpGoodsUnitMapper;
    @Resource
    private TErpSupplierWarehousingBatchMapper erpSupplierWarehousingBatchMapper;
    @Resource
    private TErpSupplierWarehousingMapper erpSupplierWarehousingMapper;
    @Resource
    private TErpSupplierOutboundGoodsMapper erpSupplierOutboundGoodsMapper;
    @Resource
    private  TCrmClinicMapper crmClinicMapper;
    @Resource
    private  TCrmSupplierMapper crmSupplierMapper;
    @Override
    public PageInfo<TErpMaintenanceReminderListVo> pageList(TErpMaintenanceReminderQuery query, SysUser user) {
        Integer roleType = user.getRoleType();
        String supplierClinicId = null;
        if(roleType == 4){
            // 供应商
            TCrmSupplier crmSupplier = crmSupplierMapper.selectOne(Wrappers.lambdaQuery(TCrmSupplier.class)
                    .eq(TCrmSupplier::getUserId, user.getUserId())
                    .last("LIMIT 1"));
            supplierClinicId =crmSupplier.getId();
        }
        if(roleType == 5){
            // 诊所
            TCrmClinic crmClinic = crmClinicMapper.selectOne(Wrappers.lambdaQuery(TCrmClinic.class)
                    .eq(TCrmClinic::getUserId, user.getUserId())
                    .last("LIMIT 1"));
            supplierClinicId =crmClinic.getId();
        }
        PageInfo<TErpMaintenanceReminderListVo> page = new PageInfo<>(query.getPageNum(), query.getPageSize());
        List<TErpMaintenanceReminderListVo> list = baseMapper.pageList(page, query, user,supplierClinicId);
        if(list.isEmpty()){
            return page;
        }
        List<String> typeIds = list.stream().map(TErpMaintenanceReminderListVo::getTypeId).collect(Collectors.toList());
        if(!typeIds.isEmpty()){
            List<TErpGoodsType> typeList = erpGoodsTypeMapper.selectBatchIds(typeIds);
            for (TErpMaintenanceReminderListVo tErpMaintenanceReminderListVo : list) {
                typeList.stream().filter(t -> t.getId().equals(tErpMaintenanceReminderListVo.getTypeId())).findFirst().ifPresent(t -> tErpMaintenanceReminderListVo.setTypeName(t.getTypeName()));
            }
        }
        List<Integer> personIds = list.stream().map(TErpMaintenanceReminderListVo::getMaintenancePersonId).collect(Collectors.toList());
        if(!personIds.isEmpty()){
            List<SysUser> userList = sysUserMapper.selectBatchIds(personIds);
            for (TErpMaintenanceReminderListVo tErpMaintenanceReminderListVo : list) {
                userList.stream().filter(t ->tErpMaintenanceReminderListVo.getMaintenancePersonId()!=null &&  t.getUserId().toString().equals(tErpMaintenanceReminderListVo.getMaintenancePersonId().toString())).findFirst().ifPresent(t -> tErpMaintenanceReminderListVo.setMaintenancePersonName(t.getUserName()));
            }
        }
        page.setRecords( list);
        return page;
    }
    @Override
    public TErpMaintenanceReminderDetailVo detail(String id, SysUser user) {
        TErpMaintenanceReminderDetailVo tErpMaintenanceReminderDetailVo = new TErpMaintenanceReminderDetailVo();
        TErpMaintenanceReminder tErpMaintenanceReminder = baseMapper.selectById(id);
        tErpMaintenanceReminderDetailVo.setId(tErpMaintenanceReminder.getId());
        tErpMaintenanceReminderDetailVo.setMaintenanceTime(tErpMaintenanceReminder.getMaintenanceTime());
        tErpMaintenanceReminderDetailVo.setMaintenanceRecord(tErpMaintenanceReminder.getMaintenanceRecord());
        tErpMaintenanceReminderDetailVo.setMaintenancePersonId(tErpMaintenanceReminder.getMaintenancePersonId());
        if(tErpMaintenanceReminder.getMaintenancePersonId()!=null){
            tErpMaintenanceReminderDetailVo.setMaintenancePersonName(sysUserMapper.selectUserById(Long.valueOf(tErpMaintenanceReminder.getMaintenancePersonId())).getUserName());
        }
        tErpMaintenanceReminderDetailVo.setStatus(tErpMaintenanceReminder.getStatus());
        String warehousingBatchId = tErpMaintenanceReminder.getWarehousingBatchId();
        if(warehousingBatchId != null){
            TErpSupplierWarehousingBatch tErpSupplierWarehousingBatch = erpSupplierWarehousingBatchMapper.selectById(warehousingBatchId);
            tErpMaintenanceReminderDetailVo.setBatchNumber(tErpSupplierWarehousingBatch.getBatchNumber());
            TErpSupplierWarehousing tErpSupplierWarehousing = erpSupplierWarehousingMapper.selectById(tErpSupplierWarehousingBatch.getWarehousingId());
            if(tErpSupplierWarehousing!=null){
                String goodsId = tErpSupplierWarehousing.getGoodsId();
                if(goodsId != null){
                    TErpGoods goods = erpGoodsMapper.selectById(goodsId);
                    tErpMaintenanceReminderDetailVo.setGoodsName(goods.getGoodsName());
                    tErpMaintenanceReminderDetailVo.setQuasiNumber(goods.getQuasiNumber());
                    tErpMaintenanceReminderDetailVo.setGoodsIdCode(goods.getGoodsIdCode());
                    String packingUnitId = goods.getPackingUnitId();
                    if(packingUnitId != null){
                        TErpGoodsUnit tErpGoodsUnit = erpGoodsUnitMapper.selectById(packingUnitId);
                        tErpMaintenanceReminderDetailVo.setUnitName(tErpGoodsUnit.getUnitName());
                    }
                }
            }
            List<TErpSupplierOutboundGoods> tErpSupplierOutboundGoods = erpSupplierOutboundGoodsMapper.selectList(new LambdaQueryWrapper<TErpSupplierOutboundGoods>().eq(TErpSupplierOutboundGoods::getWarehousingBatchId, warehousingBatchId));
            int sum = tErpSupplierOutboundGoods.stream().mapToInt(TErpSupplierOutboundGoods::getOutboundCount).sum();
            tErpMaintenanceReminderDetailVo.setNumber(tErpSupplierWarehousingBatch.getWarehousingNumber()-sum);
        }
        return tErpMaintenanceReminderDetailVo;
    }
}