刘小明
2024-08-09 552463e8591adc13ad6df1f4ab8d2284c7a591aa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package com.dy.pmsProduct.taskPlan;
 
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import com.dy.common.schedulerTask.TaskJob;
import com.dy.common.springUtil.SpringContextUtil;
import com.dy.common.util.SysUtil;
import com.dy.pmsGlobal.daoPr.PrAssemblyPlanMapper;
import com.dy.pmsGlobal.daoPr.PrDeviceMapper;
import com.dy.pmsGlobal.pojoPr.PrAssemblyPlan;
import com.dy.pmsGlobal.util.DeviceStatus;
import lombok.extern.slf4j.Slf4j;
import org.quartz.JobExecutionContext;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
 
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Slf4j
@Component
public class AssemblyPlanTask extends TaskJob {
 
    @Override
    @Transactional
    public void execute(JobExecutionContext ctx) {
        log.info("开始执行 组装计划任务定时检查");
        try{
            PrAssemblyPlanMapper assemblyDao = SpringContextUtil.getBean(PrAssemblyPlanMapper.class);
            PrDeviceMapper deviceDao = SpringContextUtil.getBean(PrDeviceMapper.class);
            Map<String,Object> planParams = new HashMap<>();
            planParams.put("status",PlanStatusEnum.NORMAL.getCode());
            List<PrAssemblyPlan> list = assemblyDao.selectSome(planParams);
            for (PrAssemblyPlan plan : list) {
                HashMap<String, Object> deviceParams = new HashMap<>();
                deviceParams.put("batchId", plan.getBatchId());
                deviceParams.put("status", DeviceStatus.COMPLETED.getCode());
                Long count = deviceDao.selectSomeCount(deviceParams);
                if(count>plan.number && DateUtil.between(DateUtil.parse(plan.endDate), DateUtil.date(), DateUnit.DAY)>3){
                    plan.setStatus(PlanStatusEnum.END.getCode());
                    assemblyDao.updateByPrimaryKeySelective(plan);
                }
            }
            if(assemblyDao!=null){
                throw new RuntimeException("");
            }
        }catch (Exception e){
            log.error("组装计划任务定时检查异常",e);
            try{
                SysUtil.InfoVo vo = SysUtil.info() ;
                System.out.println(vo.toString());
            }catch (Exception e1){}
        }
        log.info("完成 组装计划任务定时检查");
    }
}