Compare commits
No commits in common. "ec33bcd1ce36939a8967344510b62be2cac92eb9" and "39ba91f3ba2b488337b678d9e98ad4730c8d9280" have entirely different histories.
ec33bcd1ce
...
39ba91f3ba
@ -16,7 +16,4 @@ public interface RepairDictConstants {
|
|||||||
|
|
||||||
/** 配件属性 */
|
/** 配件属性 */
|
||||||
String WARES_ATTRIBUTE = "repair_attribute";
|
String WARES_ATTRIBUTE = "repair_attribute";
|
||||||
|
|
||||||
/** 配件相关提醒配置 */
|
|
||||||
String REPAIR_WARES_NOTICE = "repair_wares_notice";
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,30 +0,0 @@
|
|||||||
package cn.iocoder.yudao.job;
|
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler;
|
|
||||||
import cn.iocoder.yudao.framework.tenant.core.job.TenantJob;
|
|
||||||
import cn.iocoder.yudao.module.project.service.RepairWaresService;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 配件库存低于几个(可以自己设置)需要做库存预警
|
|
||||||
*
|
|
||||||
* @author 小李
|
|
||||||
* @date 14:40 2024/11/30
|
|
||||||
**/
|
|
||||||
@Component
|
|
||||||
@TenantJob
|
|
||||||
@Slf4j
|
|
||||||
public class WaresStockBelowJob implements JobHandler {
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private RepairWaresService waresService;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String execute(String param) throws Exception {
|
|
||||||
waresService.stockBelow();
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,32 +0,0 @@
|
|||||||
package cn.iocoder.yudao.job;
|
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler;
|
|
||||||
import cn.iocoder.yudao.framework.tenant.core.job.TenantJob;
|
|
||||||
import cn.iocoder.yudao.module.project.service.RepairWaresService;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.springframework.context.annotation.Lazy;
|
|
||||||
import org.springframework.stereotype.Component;
|
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 配件入库超多少天(可以自己设置)没用的话需要做一个临期提醒
|
|
||||||
*
|
|
||||||
* @author 小李
|
|
||||||
* @date 14:40 2024/11/30
|
|
||||||
**/
|
|
||||||
@Component
|
|
||||||
@TenantJob
|
|
||||||
@Slf4j
|
|
||||||
public class WaresTimeOverJob implements JobHandler {
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
@Lazy
|
|
||||||
private RepairWaresService waresService;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String execute(String param) throws Exception {
|
|
||||||
waresService.timeOver();
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -86,20 +86,4 @@ public interface RepairWaresService extends IService<RepairWares> {
|
|||||||
* @date 16:20 2024/11/29
|
* @date 16:20 2024/11/29
|
||||||
**/
|
**/
|
||||||
ImportExcelRespVO importData(List<RepairWaresExcelVO> list, Boolean updateSupport);
|
ImportExcelRespVO importData(List<RepairWaresExcelVO> list, Boolean updateSupport);
|
||||||
|
|
||||||
/**
|
|
||||||
* 配件入库超多少天(可以自己设置)没用的话需要做一个临期提醒
|
|
||||||
*
|
|
||||||
* @author 小李
|
|
||||||
* @date 14:42 2024/11/30
|
|
||||||
**/
|
|
||||||
void timeOver();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 配件库存低于几个(可以自己设置)需要做库存预警
|
|
||||||
*
|
|
||||||
* @author 小李
|
|
||||||
* @date 15:54 2024/11/30
|
|
||||||
**/
|
|
||||||
void stockBelow();
|
|
||||||
}
|
}
|
||||||
@ -2,11 +2,7 @@ package cn.iocoder.yudao.module.project.service.impl;
|
|||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import cn.iocoder.yudao.common.RepairDictConstants;
|
|
||||||
import cn.iocoder.yudao.common.RepairRoleEnum;
|
|
||||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||||
import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
|
|
||||||
import cn.iocoder.yudao.module.base.service.RepairWorkerService;
|
|
||||||
import cn.iocoder.yudao.module.conf.entity.BaseType;
|
import cn.iocoder.yudao.module.conf.entity.BaseType;
|
||||||
import cn.iocoder.yudao.module.conf.entity.BaseWarehouse;
|
import cn.iocoder.yudao.module.conf.entity.BaseWarehouse;
|
||||||
import cn.iocoder.yudao.module.conf.service.BaseTypeService;
|
import cn.iocoder.yudao.module.conf.service.BaseTypeService;
|
||||||
@ -15,12 +11,6 @@ import cn.iocoder.yudao.module.project.entity.RepairWares;
|
|||||||
import cn.iocoder.yudao.module.project.mapper.RepairWaresMapper;
|
import cn.iocoder.yudao.module.project.mapper.RepairWaresMapper;
|
||||||
import cn.iocoder.yudao.module.project.service.RepairWaresService;
|
import cn.iocoder.yudao.module.project.service.RepairWaresService;
|
||||||
import cn.iocoder.yudao.module.project.vo.*;
|
import cn.iocoder.yudao.module.project.vo.*;
|
||||||
import cn.iocoder.yudao.module.system.api.dict.DictDataApi;
|
|
||||||
import cn.iocoder.yudao.module.system.api.dict.dto.DictDataRespDTO;
|
|
||||||
import cn.iocoder.yudao.module.system.api.permission.RoleApi;
|
|
||||||
import cn.iocoder.yudao.module.system.api.user.dto.UserDTO;
|
|
||||||
import cn.iocoder.yudao.module.warnMessage.entity.WarnMessageByRepair;
|
|
||||||
import cn.iocoder.yudao.module.warnMessage.service.WarnMessageByRepairService;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
@ -32,7 +22,6 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.time.LocalDateTime;
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@ -58,22 +47,6 @@ public class RepairWaresServiceImpl extends ServiceImpl<RepairWaresMapper, Repai
|
|||||||
@Lazy
|
@Lazy
|
||||||
private BaseTypeService typeService;
|
private BaseTypeService typeService;
|
||||||
|
|
||||||
@Resource
|
|
||||||
@Lazy
|
|
||||||
private DictDataApi dictDataApi;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
@Lazy
|
|
||||||
private RoleApi roleApi;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
@Lazy
|
|
||||||
private RepairWorkerService workerService;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
@Lazy
|
|
||||||
private WarnMessageByRepairService warnMessageByRepairService;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 保存配件库
|
* 保存配件库
|
||||||
@ -238,97 +211,4 @@ public class RepairWaresServiceImpl extends ServiceImpl<RepairWaresMapper, Repai
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 配件入库超多少天(可以自己设置)没用的话需要做一个临期提醒
|
|
||||||
*
|
|
||||||
* @author 小李
|
|
||||||
* @date 14:42 2024/11/30
|
|
||||||
**/
|
|
||||||
@Override
|
|
||||||
public void timeOver() {
|
|
||||||
// 取配置
|
|
||||||
List<DictDataRespDTO> dataList = dictDataApi.getDictDataList(RepairDictConstants.REPAIR_WARES_NOTICE);
|
|
||||||
|
|
||||||
// 取出第一个
|
|
||||||
if (CollUtil.isEmpty(dataList)) {
|
|
||||||
noticeByFlag(true);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
DictDataRespDTO dictDataRespDTO = dataList.get(0);
|
|
||||||
String day = dictDataRespDTO.getValue();
|
|
||||||
// 转时间,如果updateTime小于这个时间,那就是需要提醒的
|
|
||||||
LocalDateTime dateAgo = LocalDateTime.now().minusDays(Integer.parseInt(day));
|
|
||||||
|
|
||||||
List<RepairWares> repairWares = baseMapper.selectList(new LambdaQueryWrapper<RepairWares>().le(RepairWares::getUpdateTime, dateAgo));
|
|
||||||
if (CollUtil.isNotEmpty(repairWares)) {
|
|
||||||
// 构建对象 todo 表需要做适配
|
|
||||||
List<WarnMessageByRepair> warnMessages = repairWares.stream().map(item ->
|
|
||||||
WarnMessageByRepair
|
|
||||||
.builder()
|
|
||||||
.title("配件超时未使用")
|
|
||||||
.content("名为:" + item.getName() + "的配件未使用天数超过设定的未使用天数提醒,请及时处理相关事项!")
|
|
||||||
.warnTime(new Date())
|
|
||||||
.isRead("0")
|
|
||||||
.build()
|
|
||||||
).collect(Collectors.toList());
|
|
||||||
warnMessageByRepairService.saveBatch(warnMessages);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 配件库存低于几个(可以自己设置)需要做库存预警
|
|
||||||
*
|
|
||||||
* @author 小李
|
|
||||||
* @date 15:54 2024/11/30
|
|
||||||
**/
|
|
||||||
@Override
|
|
||||||
public void stockBelow(){
|
|
||||||
// 取配置
|
|
||||||
List<DictDataRespDTO> dataList = dictDataApi.getDictDataList(RepairDictConstants.REPAIR_WARES_NOTICE);
|
|
||||||
|
|
||||||
// 取出第二个
|
|
||||||
if (CollUtil.isEmpty(dataList)) {
|
|
||||||
noticeByFlag(false);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
DictDataRespDTO dictDataRespDTO = dataList.get(1);
|
|
||||||
String count = dictDataRespDTO.getValue();
|
|
||||||
List<RepairWares> repairWares = baseMapper.selectList(new LambdaQueryWrapper<RepairWares>().le(RepairWares::getStock, count));
|
|
||||||
|
|
||||||
if (CollUtil.isNotEmpty(repairWares)) {
|
|
||||||
// 构建对象 todo 表需要做适配
|
|
||||||
List<WarnMessageByRepair> warnMessages = repairWares.stream().map(item ->
|
|
||||||
WarnMessageByRepair
|
|
||||||
.builder()
|
|
||||||
.title("配件库存不足")
|
|
||||||
.content("名为:" + item.getName() + "的配件库存低于设定的库存不足提醒,请及时处理相关事项!")
|
|
||||||
.warnTime(new Date())
|
|
||||||
.isRead("0")
|
|
||||||
.build()
|
|
||||||
).collect(Collectors.toList());
|
|
||||||
warnMessageByRepairService.saveBatch(warnMessages);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 上面两个方法公共的通知方法
|
|
||||||
*
|
|
||||||
* @author 小李
|
|
||||||
* @date 15:57 2024/11/30
|
|
||||||
* @param flag 什么通知
|
|
||||||
**/
|
|
||||||
private void noticeByFlag(Boolean flag){
|
|
||||||
// 取仓管、维修管理员
|
|
||||||
List<UserDTO> warehouse = roleApi.selectUserListByRoleCode(TenantContextHolder.getRequiredTenantId(), RepairRoleEnum.WAREHOUSE.getCode());
|
|
||||||
List<UserDTO> admin = roleApi.selectUserListByRoleCode(TenantContextHolder.getRequiredTenantId(), RepairRoleEnum.ADMIN.getCode());
|
|
||||||
|
|
||||||
String message = flag ? "检查配件入库是否超时出现故障,请联系开发人员解决" : "检查配件库存是否充足出现故障,请联系开发人员解决";
|
|
||||||
// 如果为空就通知相关人员出现了问题
|
|
||||||
if (CollUtil.isNotEmpty(warehouse)) {
|
|
||||||
warehouse.forEach(item -> workerService.sentMessage(item.getId(), message));
|
|
||||||
}
|
|
||||||
if (CollUtil.isNotEmpty(admin)) {
|
|
||||||
admin.forEach(item -> workerService.sentMessage(item.getId(), message));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ -1,62 +0,0 @@
|
|||||||
package cn.iocoder.yudao.module.warnMessage.entity;
|
|
||||||
|
|
||||||
import cn.iocoder.yudao.annotation.Excel;
|
|
||||||
import cn.iocoder.yudao.framework.tenant.core.db.TenantBaseDO;
|
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
|
||||||
import lombok.Builder;
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
import java.util.Date;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* warnMsg对象 warn_message
|
|
||||||
*
|
|
||||||
* @author 小李
|
|
||||||
* @date 15:11 2024/11/30
|
|
||||||
**/
|
|
||||||
@Data
|
|
||||||
@Builder
|
|
||||||
public class WarnMessageByRepair extends TenantBaseDO {
|
|
||||||
private static final long serialVersionUID = 1L;
|
|
||||||
|
|
||||||
@TableId(type = IdType.AUTO)
|
|
||||||
private Long id;
|
|
||||||
//equ设备提醒file文件提醒
|
|
||||||
private String type;
|
|
||||||
//对应的数据主键
|
|
||||||
private Long objectId;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 标题
|
|
||||||
*/
|
|
||||||
@Excel(name = "标题")
|
|
||||||
private String title;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 内容
|
|
||||||
*/
|
|
||||||
@Excel(name = "内容")
|
|
||||||
private String content;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 提醒时间
|
|
||||||
*/
|
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
|
||||||
@Excel(name = "提醒时间", width = 30, dateFormat = "yyyy-MM-dd")
|
|
||||||
private Date warnTime;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 店铺主键
|
|
||||||
*/
|
|
||||||
@Excel(name = "店铺主键")
|
|
||||||
private Long partnerId;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 是否已读
|
|
||||||
*/
|
|
||||||
@Excel(name = "是否已读")
|
|
||||||
private String isRead;
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,15 +0,0 @@
|
|||||||
package cn.iocoder.yudao.module.warnMessage.mapper;
|
|
||||||
|
|
||||||
import cn.iocoder.yudao.module.warnMessage.entity.WarnMessageByRepair;
|
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* warnMsgMapper接口
|
|
||||||
*
|
|
||||||
* @author 小李
|
|
||||||
* @date 15:14 2024/11/30
|
|
||||||
**/
|
|
||||||
@Mapper
|
|
||||||
public interface WarnMessageByRepairMapper extends BaseMapper<WarnMessageByRepair> {
|
|
||||||
}
|
|
||||||
@ -1,13 +0,0 @@
|
|||||||
package cn.iocoder.yudao.module.warnMessage.service;
|
|
||||||
|
|
||||||
import cn.iocoder.yudao.module.warnMessage.entity.WarnMessageByRepair;
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* warnMsgService接口
|
|
||||||
*
|
|
||||||
* @author 小李
|
|
||||||
* @date 15:12 2024/11/30
|
|
||||||
**/
|
|
||||||
public interface WarnMessageByRepairService extends IService<WarnMessageByRepair> {
|
|
||||||
}
|
|
||||||
@ -1,18 +0,0 @@
|
|||||||
package cn.iocoder.yudao.module.warnMessage.service.impl;
|
|
||||||
|
|
||||||
import cn.iocoder.yudao.module.warnMessage.entity.WarnMessageByRepair;
|
|
||||||
import cn.iocoder.yudao.module.warnMessage.mapper.WarnMessageByRepairMapper;
|
|
||||||
import cn.iocoder.yudao.module.warnMessage.service.WarnMessageByRepairService;
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* warnMsgService业务层处理
|
|
||||||
*
|
|
||||||
* @author 小李
|
|
||||||
* @date 15:15 2024/11/30
|
|
||||||
**/
|
|
||||||
@Service
|
|
||||||
public class WarnMessageByRepairServiceImpl extends ServiceImpl<WarnMessageByRepairMapper, WarnMessageByRepair> implements WarnMessageByRepairService {
|
|
||||||
}
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" ?>
|
|
||||||
<!DOCTYPE mapper
|
|
||||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
||||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
|
||||||
<mapper namespace="cn.iocoder.yudao.module.warnMessage.mapper.WarnMessageByRepairMapper">
|
|
||||||
</mapper>
|
|
||||||
Loading…
Reference in New Issue
Block a user