package com.ruoyi.system.service.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
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>
|
* erp保养提醒 服务实现类
|
* </p>
|
*
|
* @author xiaochen
|
* @since 2025-08-20
|
*/
|
@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;
|
|
@Override
|
public PageInfo<TErpMaintenanceReminderListVo> pageList(TErpMaintenanceReminderQuery query, SysUser user) {
|
PageInfo<TErpMaintenanceReminderListVo> page = new PageInfo<>(query.getPageNum(), query.getPageSize());
|
List<TErpMaintenanceReminderListVo> list = baseMapper.pageList(page, query, user);
|
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);
|
if(tErpMaintenanceReminder == null || tErpMaintenanceReminder.getMaintenanceType()!=1 || !tErpMaintenanceReminder.getClinicSupplierId().equals(user.getUserId().toString())){
|
return tErpMaintenanceReminderDetailVo;
|
}
|
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;
|
}
|
}
|