ganzi-api/inventory-ent/src/main/java/com/rzyc/service/TaskService.java
2023-03-07 09:26:58 +08:00

219 lines
6.5 KiB
Java

package com.rzyc.service;
import com.common.utils.DateUtils;
import com.common.utils.RandomNumber;
import com.common.utils.encryption.MD5;
import com.common.utils.model.SingleResult;
import com.rzyc.bean.check.CheckPerform;
import com.rzyc.controller.BaseController;
import com.rzyc.model.*;
import com.rzyc.model.check.BookEntHT;
import com.rzyc.model.check.BookenthtCompany;
import com.rzyc.model.ent.SysEnterprise;
import com.rzyc.model.user.SysUser;
import org.junit.Test;
import org.springframework.stereotype.Service;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
@Service
public class TaskService extends BaseController {
/**
* 定时任务
*/
public void task(){
try {
//隐患
configureTasks();
//自查隐患
configureTasksEditCompanySelfDangerState();
//履职任务提醒
performTask();
//隐患超时
configureTasksEditDanger();
}catch (Exception e){
e.printStackTrace();
}
}
/**
* 定时任务
*/
private void configureTasks() {
try {
System.err.println("--------------------定时任务 start --------------------------------");
//先查询
List<BookEntHT> entHTs = bookEntHTMapper.findByHTStateByTime();
if(null != entHTs && entHTs.size() > 0){
for (BookEntHT entHT : entHTs){
//添加通知
addNotice(entHT.getSysenterpriseid(),entHT.getHiddenarea());
}
//修改整改状态
bookEntHTMapper.changeHTStateByTime();
}
System.err.println("--------------------定时任务 end --------------------------------");
}catch (Exception e){
e.printStackTrace();
}
}
/**
* 添加隐患通知
* @param entId
* @throws Exception
*/
private void addNotice(String entId,String dangerContent)throws Exception{
List<DutyTree> dutyTrees = dutyTreeMapper.findByTargetId(entId);
if(null != dutyTrees && dutyTrees.size() > 0 ){
List<Notice> notices = new ArrayList<>();
String content = "";
SysEnterprise enterprise = sysEnterpriseMapper.selectByPrimaryKey(entId);
if(null != enterprise){
content = enterprise.getEntname()+"";
}
content += "隐患<"+dangerContent+">,";
content += "已变为未整改。";
for (DutyTree dutyTree : dutyTrees){
Notice notice = new Notice();
notice.setId(RandomNumber.getUUid());
notice.setTitle("隐患变更");
notice.setCompanyid(entId);
notice.setCheckuserid(dutyTree.getUserId());
notice.setContent(content);
notice.setReadState(1+"");
notice.setType(1);
notice.setCreateTime(new Date());
notices.add(notice);
}
noticeMapper.insertList(notices);
}
}
private void configureTasksEditCompanySelfDangerState() {
try {
System.err.println("--------------------定时任务 start --------------------------------");
//先查询
List<BookenthtCompany> entHTs = bookenthtCompanyMapper.findByHTStateByTime();
if(null != entHTs && entHTs.size() > 0){
//修改整改状态
bookenthtCompanyMapper.changeHTStateByTime();
}
System.err.println("--------------------定时任务 end --------------------------------");
}catch (Exception e){
e.printStackTrace();
}
}
/**
* 机构隐患超过整改期限
*/
public void configureTasksEditDanger(){
System.err.println("--------------------定时任务 start --------------------------------");
orgDangerMapper.outDateOrgDanger();
System.err.println("--------------------定时任务 end --------------------------------");
}
/**
* 履职定时任务
*/
public void performTask(){
try {
Calendar nowTime = Calendar.getInstance();
//当月天数
Integer monthDay = DateUtils.getMonthLastDay(nowTime.get(Calendar.YEAR),nowTime.get(Calendar.MONTH)+1);
//当前天数
Integer day = nowTime.get(Calendar.DAY_OF_MONTH);
Integer days = monthDay - day;
System.out.println("days -> "+days);
if(5 == days){
//5天前提醒
List<SysUser> users = sysUserMapper.allGovUser();
if(null != users){
for (SysUser user : users){
CheckPerform checkPerform = getCheckPerform(user);
if(checkPerform.getCheckList().size() > 0 && checkPerform.getCompletionRate() < 100){
Notice notice = new Notice();
notice.setId(RandomNumber.getUUid());
notice.setTitle("履职提醒");
notice.setCompanyid("");
notice.setCheckuserid(user.getSysuserid());
String content = "您的检查履职还未完成,请完成。";
notice.setContent(content);
notice.setReadState(1+"");
notice.setType(5);
notice.setCreateTime(new Date());
noticeMapper.insert(notice);
}
}
}
}
}catch (Exception e){
e.printStackTrace();
}
}
public void deviceInspectionCycleCheck(){
new DeviceInspectionCycle(entDeviceInsCycleMapper,entDeviceMapper).run();
}
public void scheduleUpdateState(){
System.out.println("证件过期定时任务开始");
entCertificatesMapper.scheduleUpdateStateDueSoon();
entCertificatesMapper.scheduleUpdateState();
System.out.println("证件过期定时任务结束");
}
public static void main(String[] args) {
try {
System.out.println(MD5.md5("170929"));
}catch (Exception e){
e.printStackTrace();
}
}
public void test(){
System.out.println("---------------------");
}
}