package com.gk.firework.Scheduls.Task;
|
|
import com.alibaba.fastjson.JSONObject;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.gk.firework.Config.WebSocket.WebSocketServer;
|
import com.gk.firework.Domain.Enterprise;
|
import com.gk.firework.Domain.EnterpriseLicense;
|
import com.gk.firework.Domain.EnterprisePerson;
|
import com.gk.firework.Domain.Enum.EnterpriseSafetySupervision;
|
import com.gk.firework.Domain.Enum.MsgContentType;
|
import com.gk.firework.Domain.Enum.MsgType;
|
import com.gk.firework.Domain.Enum.PersonnelCategory;
|
import com.gk.firework.Domain.UserInfo;
|
import com.gk.firework.Domain.Utils.Message;
|
import com.gk.firework.Domain.Utils.SpringBeanUtil;
|
import com.gk.firework.Domain.Utils.StringUtils;
|
import com.gk.firework.Service.EnterpriseLicenseService;
|
import com.gk.firework.Service.EnterprisePersonService;
|
import com.gk.firework.Service.EnterpriseService;
|
import lombok.SneakyThrows;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.context.annotation.Scope;
|
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Service;
|
|
import javax.websocket.Session;
|
import java.util.ArrayList;
|
import java.util.Date;
|
|
@Component("task")
|
@Scope("prototype")
|
public class CheckEnterpriseTask implements Runnable{
|
|
final static Logger logger= LoggerFactory.getLogger(CheckEnterpriseTask.class);
|
|
private UserInfo userInfo;
|
|
|
public CheckEnterpriseTask(UserInfo userInfo) {
|
this.userInfo = userInfo;
|
}
|
|
@SneakyThrows
|
@Override
|
public void run() {
|
String companynumber = userInfo.getCompanynumber();
|
Long companyid = userInfo.getCompanyid();
|
//普通企业
|
if (StringUtils.isNotBlank(companynumber)) {
|
logger.info("正在执行:检查企业信息是否完善");
|
Enterprise enterprise = SpringBeanUtil.getBean(EnterpriseService.class).selectEnterpriseByNumber(companynumber);
|
Message message = new Message(MsgType.NOTIFICATION,MsgContentType.INFO_UNDONE,Boolean.FALSE);
|
ArrayList<String> msgs = new ArrayList<>();
|
if (!checkEnterprise(enterprise)) msgs.add("企业相关信息还未完善");
|
if (!checkEnterpriseLicense(companyid)) msgs.add("许可证信息还未完善");
|
if (!checkSafetyPerson(companyid)) msgs.add("安全人员信息还未完善");
|
//长期店、短期店不用特种人员
|
if (!checkSpecialPerson(companyid)
|
&& (enterprise.getSafetysupervision().equals(EnterpriseSafetySupervision.PRODUCE)
|
|| enterprise.getSafetysupervision().equals(EnterpriseSafetySupervision.WHOLESALER))
|
) msgs.add("特种人员信息还未完善");
|
if (msgs.size() > 0){
|
message.setMessage(msgs.toString());
|
WebSocketServer.sendMessage(userInfo.getId(), JSONObject.toJSONString(message));
|
}
|
|
//检查许可证过期
|
logger.info("正在执行:检查企业许可证是否过期");
|
if (enterprise.getValidendtime().before(new Date())) {
|
Message message2 = new Message(MsgType.NOTIFICATION,MsgContentType.LICENSE_EXPIRED,Boolean.FALSE);
|
message2.setMessage("您的许可证已到期,请重新录入许可证期限并上传许可证");
|
WebSocketServer.sendMessage(userInfo.getId(), JSONObject.toJSONString(message2));
|
}
|
}
|
//监管部门
|
if (StringUtils.isBlank(companynumber)) {
|
//查找管辖的所有企业的信息未完善的
|
logger.info("正在执行:检查企业信息未完善个数");
|
int undoneEnterprise = SpringBeanUtil.getBean(EnterpriseService.class).countAllUndoneEnterprise(userInfo);
|
if (undoneEnterprise > 0) {
|
Message message = new Message(MsgType.NOTIFICATION, MsgContentType.INFO_UNDONE, Boolean.TRUE);
|
message.setMessage(String.format("共有%d个企业未完善企业相关信息",undoneEnterprise));
|
WebSocketServer.sendMessage(userInfo.getId(), JSONObject.toJSONString(message));
|
}
|
|
logger.info("正在执行:检查所有许可证过期企业");
|
int expiredEnterprise = SpringBeanUtil.getBean(EnterpriseService.class).countAllEnterpriseExpired(userInfo);
|
if (expiredEnterprise > 0) {
|
Message message = new Message(MsgType.NOTIFICATION, MsgContentType.LICENSE_EXPIRED, Boolean.TRUE);
|
message.setMessage(String.format("共有%d个企业许可证已过期",expiredEnterprise));
|
WebSocketServer.sendMessage(userInfo.getId(), JSONObject.toJSONString(message));
|
}
|
|
}
|
logger.info("结束执行");
|
|
}
|
|
//检查企业信息完整
|
private boolean checkEnterprise(Enterprise enterprise) {
|
boolean flag = true;
|
//小提示
|
if (StringUtils.isBlank(enterprise.getOfficeaddress())) {
|
flag = false;
|
}
|
return flag;
|
}
|
|
//检查许可证 有无
|
private boolean checkEnterpriseLicense(Long enterpriseid) {
|
LambdaQueryWrapper<EnterpriseLicense> queryWrapper = new LambdaQueryWrapper<>();
|
queryWrapper.eq(EnterpriseLicense::getEnterpriseid, enterpriseid)
|
.eq(EnterpriseLicense::getValidflag, true);
|
int count = SpringBeanUtil.getBean(EnterpriseLicenseService.class).count(queryWrapper);
|
return count != 0;
|
}
|
|
|
//检查安全人员
|
private boolean checkSafetyPerson(Long enterpriseid) {
|
LambdaQueryWrapper<EnterprisePerson> queryWrapper = new LambdaQueryWrapper<>();
|
queryWrapper.eq(EnterprisePerson::getEnterpriseid, enterpriseid)
|
.eq(EnterprisePerson::getValidflag, true)
|
.eq(EnterprisePerson::getType, PersonnelCategory.SECURITY);
|
int count = SpringBeanUtil.getBean(EnterprisePersonService.class).count(queryWrapper);
|
return count != 0;
|
}
|
|
//检查特种人员
|
private boolean checkSpecialPerson(Long enterpriseid) {
|
LambdaQueryWrapper<EnterprisePerson> queryWrapper = new LambdaQueryWrapper<>();
|
queryWrapper.eq(EnterprisePerson::getEnterpriseid, enterpriseid)
|
.eq(EnterprisePerson::getValidflag, true)
|
.eq(EnterprisePerson::getType, PersonnelCategory.SPECIAL);
|
int count = SpringBeanUtil.getBean(EnterprisePersonService.class).count(queryWrapper);
|
return count != 0;
|
}
|
|
|
|
|
|
}
|