|
@@ -2,6 +2,7 @@ package com.management.platform.task;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
|
import com.management.platform.controller.ReportController;
|
|
|
import com.management.platform.entity.*;
|
|
|
import com.management.platform.entity.vo.TisTimeVO;
|
|
@@ -202,7 +203,7 @@ public class DataCollectTask {
|
|
|
|
|
|
|
|
|
@Scheduled(cron = "0 0 1 * * ?")
|
|
|
-// @Scheduled(cron = "0 46 7 * * ?")
|
|
|
+// @Scheduled(cron = "0 0 11 * * ?")
|
|
|
@Async
|
|
|
public void sqlServerTask() {
|
|
|
if(isDev){return;}
|
|
@@ -243,10 +244,12 @@ public class DataCollectTask {
|
|
|
new ParameterizedTypeReference<List<ErpOrderInfo>>(){}
|
|
|
);
|
|
|
if (listResponse.getStatusCode() == HttpStatus.OK) {
|
|
|
+ //dataList中是进行中的工单
|
|
|
List<ErpOrderInfo> dataList = listResponse.getBody();
|
|
|
+ List<ErpOrderInfo> erpOrderInfos = erpOrderInfoMapper.selectList(new LambdaQueryWrapper<ErpOrderInfo>());
|
|
|
+ List<ErpOrderInfo> closeInfoList = new ArrayList<>();
|
|
|
+ List<String> collect = dataList.stream().map(ErpOrderInfo::getMoDId).collect(Collectors.toList());
|
|
|
if(org.apache.commons.collections.CollectionUtils.isNotEmpty(dataList)){
|
|
|
- List<String> collect = dataList.stream().map(ErpOrderInfo::getMoDId).distinct().collect(Collectors.toList());
|
|
|
- List<ErpOrderInfo> erpOrderInfos = erpOrderInfoMapper.selectList(new LambdaQueryWrapper<ErpOrderInfo>().in(ErpOrderInfo::getMoDId, collect));
|
|
|
for (ErpOrderInfo item : dataList) {
|
|
|
Optional<ErpOrderInfo> first = erpOrderInfos.stream().filter(t -> t.getMoDId().equals(item.getMoDId())).findFirst();
|
|
|
if(first.isPresent()){
|
|
@@ -264,7 +267,15 @@ public class DataCollectTask {
|
|
|
}
|
|
|
toUpdateList.clear();
|
|
|
toAddList.clear();
|
|
|
+ erpOrderInfos.stream().filter(t -> !collect.contains(t.getMoDId())).forEach(t -> closeInfoList.add(new ErpOrderInfo().setId(t.getId()).setStatus(4)));
|
|
|
+ if(!CollectionUtils.isEmpty(closeInfoList)){
|
|
|
+ erpOrderInfoService.updateBatchById(closeInfoList);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ //全部关闭
|
|
|
+ erpOrderInfoMapper.update(new ErpOrderInfo().setStatus(4), new QueryWrapper<ErpOrderInfo>());
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
offset += pageSize;
|
|
|
}
|
|
@@ -365,7 +376,7 @@ public class DataCollectTask {
|
|
|
}
|
|
|
|
|
|
@Scheduled(cron = "0 0 2 * * ?")
|
|
|
-//@Scheduled(cron = "0 35 8 * * ?")
|
|
|
+//@Scheduled(cron = "30 35 15 * * ?")
|
|
|
@Async
|
|
|
public void leaveSheetTask(){
|
|
|
if(isDev){return;}
|
|
@@ -424,7 +435,7 @@ public class DataCollectTask {
|
|
|
if(!CollectionUtils.isEmpty(realDataList)){
|
|
|
List<String> collect = realDataList.stream().map(LeaveSheet::getProcinstId).distinct().collect(Collectors.toList());
|
|
|
List<LeaveSheet> existLeaveSheetList = leaveSheetMapper.selectList(new LambdaQueryWrapper<LeaveSheet>().in(LeaveSheet::getProcinstId, collect).eq(LeaveSheet::getCompanyId, specialCompanyId));
|
|
|
- List<String> existIds = existLeaveSheetList.stream().map(LeaveSheet::getProcinstId).collect(Collectors.toList());
|
|
|
+// List<String> existIds = existLeaveSheetList.stream().map(LeaveSheet::getProcinstId).collect(Collectors.toList());
|
|
|
// List<String> existIds = leaveSheetMapper.getExistIds(collect,specialCompanyId);
|
|
|
for (LeaveSheet tmp : realDataList) {
|
|
|
Optional<LeaveSheet> first = existLeaveSheetList.stream().filter(t -> t.getProcinstId().equals(tmp.getProcinstId())).findFirst();
|
|
@@ -457,7 +468,7 @@ public class DataCollectTask {
|
|
|
List<LeaveSheet> leaveSheetList = leaveSheetMapper.selectList(new LambdaQueryWrapper<LeaveSheet>()
|
|
|
.eq(LeaveSheet::getOwnerId, ownerId)
|
|
|
.eq(LeaveSheet::getCompanyId, specialCompanyId)
|
|
|
- .le(LeaveSheet::getStartDate, date).gt(LeaveSheet::getEndDate, date));
|
|
|
+ .le(LeaveSheet::getStartDate, date).ge(LeaveSheet::getEndDate, date));
|
|
|
if (!CollectionUtils.isEmpty(leaveSheetList)) {
|
|
|
double leaveHours = leaveSheetList.stream().mapToDouble(LeaveSheet::getTimeHours).sum();
|
|
|
if (leaveHours > 0) {
|
|
@@ -469,7 +480,6 @@ public class DataCollectTask {
|
|
|
List<Report> reportList = reportMapper.selectList(new QueryWrapper<Report>().eq("company_id", specialCompanyId).eq("project_id", project.getId()).eq("create_date", date).eq("creator_id", ownerId));
|
|
|
//取第一条
|
|
|
Report oneReport = reportList.size() > 0?reportList.get(0):new Report();
|
|
|
-
|
|
|
if (oneReport.getId() != null) {
|
|
|
if (!oneReport.getWorkingTime().equals(leaveHours)) {
|
|
|
//更新时长
|
|
@@ -490,6 +500,7 @@ public class DataCollectTask {
|
|
|
report.setCreatorId(ownerId);
|
|
|
report.setDeptId(owner.getDepartmentId());
|
|
|
report.setProjectAuditState(0);
|
|
|
+ report.setWorkingTime(leaveHours);
|
|
|
|
|
|
LocalDate now = LocalDate.now();
|
|
|
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|