|
@@ -5,6 +5,7 @@ import java.util.ArrayList;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.concurrent.locks.ReentrantLock;
|
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -26,6 +27,8 @@ import lombok.extern.slf4j.Slf4j;
|
|
|
@Slf4j
|
|
|
@Service
|
|
|
public class PlanServiceImpl extends ServiceImpl<BentelerPlanMapper, BentelerPlan> implements PlanService{
|
|
|
+ private static ReentrantLock lock = new ReentrantLock();
|
|
|
+ private static ReentrantLock lock2 = new ReentrantLock();
|
|
|
@Autowired
|
|
|
private FirstTaskService firstTaskService;
|
|
|
@Autowired
|
|
@@ -58,9 +61,11 @@ public class PlanServiceImpl extends ServiceImpl<BentelerPlanMapper, BentelerPla
|
|
|
|
|
|
}
|
|
|
}
|
|
|
- //立刻生成任务
|
|
|
- this.makeFirstTask(now);
|
|
|
- this.makeOnsiteTask(now);
|
|
|
+ if(listMake.size()>0) {
|
|
|
+ //立刻生成任务
|
|
|
+ this.makeFirstTask(now);
|
|
|
+ this.makeOnsiteTask(now);
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
|
|
@@ -74,51 +79,61 @@ public class PlanServiceImpl extends ServiceImpl<BentelerPlanMapper, BentelerPla
|
|
|
|
|
|
}
|
|
|
|
|
|
- public synchronized int makeFirstTask(LocalDate now) {
|
|
|
- int num = 0;
|
|
|
- List<FirstCalendar> cals = null;
|
|
|
- FirstTask task = new FirstTask();
|
|
|
- task.setTask_time(now);
|
|
|
- for(int typeFlag=0;typeFlag<=1;typeFlag++) {//2中断在pad手动建立
|
|
|
- cals = firstTaskService.getCalenderFirstForType(typeFlag,now);
|
|
|
- num +=cals.size();
|
|
|
- log.debug("FA需要生成新任务数量:{}",cals.size());
|
|
|
- for (FirstCalendar cal : cals) {
|
|
|
- try {
|
|
|
- task.setFirst_article_calendar_id(cal.getId());
|
|
|
- task.setType_flag(typeFlag);
|
|
|
- firstTaskService.insertFirstTask(task);
|
|
|
- } catch (Throwable e) {
|
|
|
- log.error("FAaddTask生产任务出错",e);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return num;
|
|
|
+ public int makeFirstTask(LocalDate now) {
|
|
|
+ try {
|
|
|
+ lock.lock();
|
|
|
+ int num = 0;
|
|
|
+ List<FirstCalendar> cals = null;
|
|
|
+ FirstTask task = new FirstTask();
|
|
|
+ task.setTask_time(now);
|
|
|
+ for(int typeFlag=0;typeFlag<=1;typeFlag++) {//2中断在pad手动建立
|
|
|
+ cals = firstTaskService.getCalenderFirstForType(typeFlag,now);
|
|
|
+ num +=cals.size();
|
|
|
+ log.debug("FA需要生成新任务数量:{}",cals.size());
|
|
|
+ for (FirstCalendar cal : cals) {
|
|
|
+ try {
|
|
|
+ task.setFirst_article_calendar_id(cal.getId());
|
|
|
+ task.setType_flag(typeFlag);
|
|
|
+ firstTaskService.insertFirstTask(task);
|
|
|
+ } catch (Throwable e) {
|
|
|
+ log.error("FAaddTask生产任务出错",e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return num;
|
|
|
+ }finally {
|
|
|
+ lock.unlock();
|
|
|
+ }
|
|
|
}
|
|
|
- public synchronized int makeOnsiteTask(LocalDate now) {
|
|
|
- HashMap<String, Object> param = new HashMap<>();
|
|
|
- param.put("today", now);
|
|
|
- int num = 0;
|
|
|
- // 直接查询没有生成任务的
|
|
|
- List<OnsiteCalendar> cals = null;
|
|
|
- for (int typeFlag = 0; typeFlag <= 2; typeFlag++) {
|
|
|
- param.put("type_flag", typeFlag);
|
|
|
- cals = onsiteTaskService.getCalenderOnsitesForType(param);
|
|
|
- log.debug("OT需要生成新任务数量:{}", cals.size());
|
|
|
- num = num + cals.size();
|
|
|
- for (OnsiteCalendar cal : cals) {
|
|
|
- try {
|
|
|
- OnsiteTask task = new OnsiteTask();
|
|
|
- task.setTask_time(now);// 周末和月末
|
|
|
- task.setOnsite_calendar_id(cal.getId());
|
|
|
- onsiteTaskService.insertOnsiteTask(task);
|
|
|
- } catch (Throwable e) {
|
|
|
- log.error("OTaddTask生产任务出错", e);
|
|
|
+ public int makeOnsiteTask(LocalDate now) {
|
|
|
+ try {
|
|
|
+ lock2.lock();
|
|
|
+ HashMap<String, Object> param = new HashMap<>();
|
|
|
+ param.put("today", now);
|
|
|
+ int num = 0;
|
|
|
+ // 直接查询没有生成任务的
|
|
|
+ List<OnsiteCalendar> cals = null;
|
|
|
+ for (int typeFlag = 0; typeFlag <= 2; typeFlag++) {
|
|
|
+ param.put("type_flag", typeFlag);
|
|
|
+ cals = onsiteTaskService.getCalenderOnsitesForType(param);
|
|
|
+ log.debug("OT需要生成新任务数量:{}", cals.size());
|
|
|
+ num = num + cals.size();
|
|
|
+ for (OnsiteCalendar cal : cals) {
|
|
|
+ try {
|
|
|
+ OnsiteTask task = new OnsiteTask();
|
|
|
+ task.setTask_time(now);// 周末和月末
|
|
|
+ task.setOnsite_calendar_id(cal.getId());
|
|
|
+ onsiteTaskService.insertOnsiteTask(task);
|
|
|
+ } catch (Throwable e) {
|
|
|
+ log.error("OTaddTask生产任务出错", e);
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
+ return num;
|
|
|
+ }finally {
|
|
|
+ lock2.unlock();
|
|
|
}
|
|
|
- return num;
|
|
|
}
|
|
|
|
|
|
}
|