|
|
@@ -35,6 +35,7 @@ import com.xunmei.common.security.utils.SecurityUtils;
|
|
|
import com.xunmei.core.question.QuestionSrcType;
|
|
|
import com.xunmei.core.question.domain.Question;
|
|
|
import com.xunmei.core.question.service.IQuestionService;
|
|
|
+import com.xunmei.core.registerbook.mapper.CoreRegisterBookPdfMapper;
|
|
|
import com.xunmei.core.registerbook.service.ICoreRegisterBookPdfService;
|
|
|
import com.xunmei.core.resumption.domain.*;
|
|
|
import com.xunmei.core.resumption.dto.DistributeDto;
|
|
|
@@ -68,6 +69,8 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.time.LocalDate;
|
|
|
import java.util.*;
|
|
|
import java.util.concurrent.CompletableFuture;
|
|
|
import java.util.stream.Collectors;
|
|
|
@@ -116,6 +119,11 @@ public class AppPlanServiceImpl extends ServiceImpl<AppPlanMapper, AppPlan> impl
|
|
|
@Autowired
|
|
|
private RemoteOrgService remoteOrgService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private CoreRegisterBookPdfMapper coreRegisterBookPdfMapper;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
@Override
|
|
|
public List<Long> selectItemIdsByPlanId(Long id) {
|
|
|
return appPlanToItemMapper.selectItemIdsByPlanId(id);
|
|
|
@@ -1094,15 +1102,30 @@ public class AppPlanServiceImpl extends ServiceImpl<AppPlanMapper, AppPlan> impl
|
|
|
throw new SystemException(ErrorMsgConstants.GENERATE_PDF_ERROR);
|
|
|
}*/
|
|
|
String pdfUrl = r.getData();
|
|
|
- CoreRegisterBookPdf registerBookPdf = new CoreRegisterBookPdf();
|
|
|
- registerBookPdf.setId(IdWorker.getId());
|
|
|
- registerBookPdf.setRegisterBookType(RegisterBookType.ON_DUTY_USER.getNum());
|
|
|
- registerBookPdf.setDate(date);
|
|
|
- registerBookPdf.setOrgId(orgId);
|
|
|
- registerBookPdf.setOrgName(sysOrg.getShortName());
|
|
|
- registerBookPdf.setOrgPath(sysOrg.getPath());
|
|
|
- registerBookPdf.setFileUrl(pdfUrl);
|
|
|
- registerBookPdf.setFileName(fileName);
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
+ String dateStr = sdf.format(date);
|
|
|
+ LambdaQueryWrapper<CoreRegisterBookPdf> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ wrapper.eq(CoreRegisterBookPdf::getOrgId,orgId)
|
|
|
+ .eq(CoreRegisterBookPdf::getDate,dateStr)
|
|
|
+ .eq(CoreRegisterBookPdf::getRegisterBookType,RegisterBookType.ON_DUTY_USER.getNum())
|
|
|
+ .like(CoreRegisterBookPdf::getFileName,sysOrg.getName() + "_" + RegisterBookType.ON_DUTY_USER.getText() + "_");
|
|
|
+ CoreRegisterBookPdf registerBookPdf = coreRegisterBookPdfMapper.selectOne(wrapper);
|
|
|
+ if(ObjectUtil.isEmpty(registerBookPdf))
|
|
|
+ {
|
|
|
+ registerBookPdf = new CoreRegisterBookPdf();
|
|
|
+ registerBookPdf.setId(IdWorker.getId());
|
|
|
+ registerBookPdf.setRegisterBookType(RegisterBookType.ON_DUTY_USER.getNum());
|
|
|
+ registerBookPdf.setDate(date);
|
|
|
+ registerBookPdf.setOrgId(orgId);
|
|
|
+ registerBookPdf.setOrgName(sysOrg.getShortName());
|
|
|
+ registerBookPdf.setOrgPath(sysOrg.getPath());
|
|
|
+ registerBookPdf.setFileUrl(pdfUrl);
|
|
|
+ registerBookPdf.setFileName(fileName);
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ registerBookPdf.setFileUrl(pdfUrl);
|
|
|
+ registerBookPdf.setFileName(fileName);
|
|
|
+ }
|
|
|
if (StringUtils.isEmpty(registerBookPdf.getFileName()) || StringUtils.isEmpty(pdfUrl)) {
|
|
|
throw new SystemException(ErrorMsgConstants.GENERATE_PDF_ERROR);
|
|
|
}
|
|
|
@@ -1136,16 +1159,32 @@ public class AppPlanServiceImpl extends ServiceImpl<AppPlanMapper, AppPlan> impl
|
|
|
if (ObjectUtil.isNull(id)) {
|
|
|
throw new SystemException(ErrorMsgConstants.GENERATE_PDF_ERROR);
|
|
|
}*/
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
+ String dateStr = sdf.format(date);
|
|
|
+
|
|
|
String pdfUrl = r.getData();
|
|
|
- CoreRegisterBookPdf registerBookPdf = new CoreRegisterBookPdf();
|
|
|
- registerBookPdf.setId(IdWorker.getId());
|
|
|
- registerBookPdf.setRegisterBookType(RegisterBookType.SECURITY_PERFORMANCE.getNum());
|
|
|
- registerBookPdf.setDate(date);
|
|
|
- registerBookPdf.setOrgId(orgId);
|
|
|
- registerBookPdf.setOrgName(sysOrg.getShortName());
|
|
|
- registerBookPdf.setOrgPath(sysOrg.getPath());
|
|
|
- registerBookPdf.setFileUrl(pdfUrl);
|
|
|
- registerBookPdf.setFileName(fileName);
|
|
|
+ LambdaQueryWrapper<CoreRegisterBookPdf> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ wrapper.eq(CoreRegisterBookPdf::getOrgId,orgId)
|
|
|
+ .eq(CoreRegisterBookPdf::getDate, dateStr)
|
|
|
+ .eq(CoreRegisterBookPdf::getRegisterBookType,RegisterBookType.SECURITY_PERFORMANCE.getNum())
|
|
|
+ .like(CoreRegisterBookPdf::getFileName,sysOrg.getName() + "_" + RegisterBookType.SECURITY_PERFORMANCE.getText() + "_");
|
|
|
+ CoreRegisterBookPdf registerBookPdf = coreRegisterBookPdfMapper.selectOne(wrapper);
|
|
|
+ if(ObjectUtil.isEmpty(registerBookPdf))
|
|
|
+ {
|
|
|
+ registerBookPdf = new CoreRegisterBookPdf();
|
|
|
+ registerBookPdf.setId(IdWorker.getId());
|
|
|
+ registerBookPdf.setRegisterBookType(RegisterBookType.SECURITY_PERFORMANCE.getNum());
|
|
|
+ registerBookPdf.setDate(date);
|
|
|
+ registerBookPdf.setOrgId(orgId);
|
|
|
+ registerBookPdf.setOrgName(sysOrg.getShortName());
|
|
|
+ registerBookPdf.setOrgPath(sysOrg.getPath());
|
|
|
+ registerBookPdf.setFileUrl(pdfUrl);
|
|
|
+ registerBookPdf.setFileName(fileName);
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ registerBookPdf.setFileUrl(pdfUrl);
|
|
|
+ registerBookPdf.setFileName(fileName);
|
|
|
+ }
|
|
|
if (StringUtils.isEmpty(registerBookPdf.getFileName()) || StringUtils.isEmpty(pdfUrl)) {
|
|
|
throw new SystemException(ErrorMsgConstants.GENERATE_PDF_ERROR);
|
|
|
}
|
|
|
@@ -1158,8 +1197,8 @@ public class AppPlanServiceImpl extends ServiceImpl<AppPlanMapper, AppPlan> impl
|
|
|
public void buildPdf(Date date) {
|
|
|
|
|
|
List<Resumption> resumptions = resumptionMapper.selectList(new LambdaQueryWrapper<Resumption>()
|
|
|
- .like(Resumption::getSubmitTime, DateUtils.toLocalDate(date))
|
|
|
- .eq(Resumption::getStatus, 3)
|
|
|
+ .like(Resumption::getYmdDate, DateUtils.toLocalDate(date))
|
|
|
+// .eq(Resumption::getStatus, 3)
|
|
|
.select(Resumption::getOrgId));
|
|
|
List<Long> orgIds = resumptions.stream().map(Resumption::getOrgId).distinct().collect(Collectors.toList());
|
|
|
for (Long orgId : orgIds) {
|
|
|
@@ -1201,15 +1240,31 @@ public class AppPlanServiceImpl extends ServiceImpl<AppPlanMapper, AppPlan> impl
|
|
|
throw new SystemException(ErrorMsgConstants.GENERATE_PDF_ERROR);
|
|
|
}*/
|
|
|
String pdfUrl = r.getData();
|
|
|
- CoreRegisterBookPdf registerBookPdf = new CoreRegisterBookPdf();
|
|
|
- registerBookPdf.setId(IdWorker.getId());
|
|
|
- registerBookPdf.setRegisterBookType(RegisterBookType.getEnums((Integer) data.get("planType")).getNum());
|
|
|
- registerBookPdf.setDate(date);
|
|
|
- registerBookPdf.setOrgId(orgId);
|
|
|
- registerBookPdf.setOrgName(sysOrg.getShortName());
|
|
|
- registerBookPdf.setOrgPath(sysOrg.getPath());
|
|
|
- registerBookPdf.setFileUrl(pdfUrl);
|
|
|
- registerBookPdf.setFileName(data.get("fileName").toString());
|
|
|
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
+ String dateStr = sdf.format(date);
|
|
|
+ LambdaQueryWrapper<CoreRegisterBookPdf> wrapper = new LambdaQueryWrapper<>();
|
|
|
+ wrapper.eq(CoreRegisterBookPdf::getOrgId,orgId)
|
|
|
+ .eq(CoreRegisterBookPdf::getDate,dateStr)
|
|
|
+ .eq(CoreRegisterBookPdf::getRegisterBookType,RegisterBookType.getEnums((Integer) data.get("planType")).getNum())
|
|
|
+ .like(CoreRegisterBookPdf::getFileName,sysOrg.getName() + "_" + RegisterBookType.getEnums((Integer) data.get("planType")).getText() + "_");
|
|
|
+ CoreRegisterBookPdf registerBookPdf = coreRegisterBookPdfMapper.selectOne(wrapper);
|
|
|
+ if(ObjectUtil.isEmpty(registerBookPdf))
|
|
|
+ {
|
|
|
+ registerBookPdf = new CoreRegisterBookPdf();
|
|
|
+ registerBookPdf.setId(IdWorker.getId());
|
|
|
+ registerBookPdf.setRegisterBookType(RegisterBookType.getEnums((Integer) data.get("planType")).getNum());
|
|
|
+ registerBookPdf.setDate(date);
|
|
|
+ registerBookPdf.setOrgId(orgId);
|
|
|
+ registerBookPdf.setOrgName(sysOrg.getShortName());
|
|
|
+ registerBookPdf.setOrgPath(sysOrg.getPath());
|
|
|
+ registerBookPdf.setFileUrl(pdfUrl);
|
|
|
+ registerBookPdf.setFileName(data.get("fileName").toString());
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ registerBookPdf.setFileUrl(pdfUrl);
|
|
|
+ registerBookPdf.setFileName(data.get("fileName").toString());
|
|
|
+ }
|
|
|
+
|
|
|
if (StringUtils.isEmpty(registerBookPdf.getFileName()) || StringUtils.isEmpty(pdfUrl)) {
|
|
|
throw new SystemException(ErrorMsgConstants.GENERATE_PDF_ERROR);
|
|
|
}
|
|
|
@@ -1223,6 +1278,12 @@ public class AppPlanServiceImpl extends ServiceImpl<AppPlanMapper, AppPlan> impl
|
|
|
private List<Map<String, Object>> getFtlResumptionAllDay(SysOrg sysOrg, Date date) {
|
|
|
//查询执行时刻为全天的的履职数据
|
|
|
List<Resumption> allDayDataList = resumptionMapper.selectBySubmitTimeAndPlanType(date, Arrays.asList(4, 5, 6), sysOrg.getId());
|
|
|
+ // 获取未完成且任务结束时间在当天
|
|
|
+ List<Resumption> dataList2 = resumptionMapper.selectByEndDateAndPlanType(DateUtil.beginOfDay(date),DateUtil.endOfDay(date), Arrays.asList(4, 5, 6), sysOrg.getId());
|
|
|
+ if(dataList2.size()>0)
|
|
|
+ {
|
|
|
+ allDayDataList.addAll(dataList2);
|
|
|
+ }
|
|
|
//全天的的履职数据需要生成三种登记簿,所以还需要跟根据任务类型来分组 // 4:“110”入侵报警系统测试 5:不间断电源(UPS)维护 6:离行式自助银行巡检
|
|
|
final Map<Integer, List<Resumption>> listMap = allDayDataList.stream().filter(res -> Arrays.asList(4, 5, 6).contains(res.getPlanType())).collect(Collectors.groupingBy(Resumption::getPlanType));
|
|
|
List<Map<String, Object>> maps = new ArrayList<>();
|
|
|
@@ -1233,8 +1294,13 @@ public class AppPlanServiceImpl extends ServiceImpl<AppPlanMapper, AppPlan> impl
|
|
|
List<AppResumptionDataInfoVo> allDayInfo = getItems(allDayDataList);
|
|
|
Map<Long, List<AppResumptionDataInfoVo>> afterf = allDayInfo.stream().collect(Collectors.groupingBy(AppResumptionDataInfoVo::getItemId));
|
|
|
data.put(DictUtils.getDictLabel(DictConstants.RESUMPTION_PLAN_EXEC, 1), getResult(afterf));
|
|
|
+ String tempSubmitNames= allDayDataList.stream().map(Resumption::getSubmitorName).distinct().collect(Collectors.joining(","));
|
|
|
+ if("null".equals(tempSubmitNames))
|
|
|
+ {
|
|
|
+ tempSubmitNames=StringUtils.EMPTY;
|
|
|
+ }
|
|
|
// 提交人
|
|
|
- data.put("submiterNames", allDayDataList.stream().map(Resumption::getSubmitorName).distinct().collect(Collectors.joining(",")));
|
|
|
+ data.put("submiterNames", tempSubmitNames);
|
|
|
// 获取任务相关问题
|
|
|
data.put("questions", getListQuestionPdfVo(allDayDataList.stream().map(Resumption::getId).collect(Collectors.toList())));
|
|
|
data.put("title", RegisterBookType.getEnums(planType).getText());
|
|
|
@@ -1249,12 +1315,24 @@ public class AppPlanServiceImpl extends ServiceImpl<AppPlanMapper, AppPlan> impl
|
|
|
|
|
|
private Map<String, Object> getFtlResumptionNotWorkTime(Long orgId, Date date) {
|
|
|
Map<String, Object> data = new HashMap<>();
|
|
|
+ // 获取当天提交已完成的履职任务
|
|
|
List<Resumption> dataList = resumptionMapper.selectBySubmitTimeAndPlanType(date, Arrays.asList(7), orgId);
|
|
|
+ // 获取未完成且任务结束时间在当天
|
|
|
+ List<Resumption> dataList2 = resumptionMapper.selectByEndDateAndPlanType(DateUtil.beginOfDay(date),DateUtil.endOfDay(date), Arrays.asList(7), orgId);
|
|
|
+ if(dataList2.size()>0)
|
|
|
+ {
|
|
|
+ dataList.addAll(dataList2);
|
|
|
+ }
|
|
|
List<AppResumptionDataInfoVo> notWorkTimeInfo = getItems(dataList);
|
|
|
Map<Long, List<AppResumptionDataInfoVo>> afterf = notWorkTimeInfo.stream().collect(Collectors.groupingBy(AppResumptionDataInfoVo::getItemId));
|
|
|
data.put(DictUtils.getDictLabel(DictConstants.RESUMPTION_PLAN_EXEC, 5), getResult(afterf));
|
|
|
+ String tempSubmitNames= dataList.stream().map(Resumption::getSubmitorName).distinct().collect(Collectors.joining(","));
|
|
|
+ if("null".equals(tempSubmitNames))
|
|
|
+ {
|
|
|
+ tempSubmitNames=StringUtils.EMPTY;
|
|
|
+ }
|
|
|
// 提交人
|
|
|
- data.put("submiterNames", dataList.stream().map(Resumption::getSubmitorName).distinct().collect(Collectors.joining(",")));
|
|
|
+ data.put("submiterNames", tempSubmitNames);
|
|
|
// 获取任务相关问题
|
|
|
data.put("questions", getListQuestionPdfVo(dataList.stream().map(Resumption::getId).collect(Collectors.toList())));
|
|
|
return data;
|
|
|
@@ -1299,7 +1377,12 @@ public class AppPlanServiceImpl extends ServiceImpl<AppPlanMapper, AppPlan> impl
|
|
|
submiterNames.addAll(ing.stream().map(x -> x.getSubmitorName()).collect(Collectors.toList()));
|
|
|
submiterNames.addAll(after.stream().map(x -> x.getSubmitorName()).collect(Collectors.toList()));
|
|
|
submiterNames = submiterNames.stream().distinct().collect(Collectors.toList());
|
|
|
- data.put("submiterNames", String.join(",", submiterNames));
|
|
|
+ String tempSubmitNames= String.join(",", submiterNames);
|
|
|
+ if("null".equals(tempSubmitNames))
|
|
|
+ {
|
|
|
+ tempSubmitNames=StringUtils.EMPTY;
|
|
|
+ }
|
|
|
+ data.put("submiterNames", tempSubmitNames);
|
|
|
// 获取任务相关问题
|
|
|
List<Long> taskIds = before.stream().map(x -> x.getId()).collect(Collectors.toList());
|
|
|
taskIds.addAll(ing.stream().map(x -> x.getId()).collect(Collectors.toList()));
|
|
|
@@ -1311,11 +1394,11 @@ public class AppPlanServiceImpl extends ServiceImpl<AppPlanMapper, AppPlan> impl
|
|
|
public List<AppResumptionDataInfoVo> getItems(List<Resumption> resumptions) {
|
|
|
List<AppResumptionDataInfoVo> vos = new ArrayList<>();
|
|
|
for (Resumption r : resumptions) {
|
|
|
- ResumptionRecordVo resumptionRecordVo = resumptionRecordService.selectInfo(r.getId());
|
|
|
- List<ResumptionRecordItemVo> items = resumptionRecordVo.getItems();
|
|
|
- for (ResumptionRecordItemVo v : items) {
|
|
|
- vos.addAll(v.getDataInfoList());
|
|
|
- }
|
|
|
+ vos.addAll(resumptionRecordService.getResumptionDataById(r.getId(),r.getStatus(),r.getPlanId(),r.getOrgId()));
|
|
|
+// List<ResumptionRecordItemVo> items = resumptionRecordVo.getItems();
|
|
|
+// for (ResumptionRecordItemVo v : items) {
|
|
|
+// vos.addAll(v.getDataInfoList());
|
|
|
+// }
|
|
|
}
|
|
|
return vos;
|
|
|
}
|
|
|
@@ -1326,11 +1409,22 @@ public class AppPlanServiceImpl extends ServiceImpl<AppPlanMapper, AppPlan> impl
|
|
|
for (Map.Entry<Long, List<AppResumptionDataInfoVo>> map : bef.entrySet()) {
|
|
|
String pointName = "";
|
|
|
StringBuilder submitName = new StringBuilder();
|
|
|
- int result = 0;
|
|
|
+
|
|
|
+ //null:未执行 0:正常 1:异常
|
|
|
+ Integer result = null;
|
|
|
// for (AppResumptionDataInfoVo vo :bef.get(l)) {
|
|
|
for (AppResumptionDataInfoVo vo : map.getValue()) {
|
|
|
pointName = vo.getPointName();
|
|
|
- result += vo.getResValue();
|
|
|
+ if(ObjectUtil.isNotNull(vo.getResValue()))
|
|
|
+ {
|
|
|
+ if(vo.getResValue()>0)
|
|
|
+ {
|
|
|
+ result=1;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ result=0;
|
|
|
+ }
|
|
|
+ }
|
|
|
if (!(submitName.toString().contains(vo.getSubmitName()))) {
|
|
|
submitName.append(vo.getSubmitName());
|
|
|
}
|
|
|
@@ -1338,7 +1432,9 @@ public class AppPlanServiceImpl extends ServiceImpl<AppPlanMapper, AppPlan> impl
|
|
|
ResumptionPdf tem = new ResumptionPdf();
|
|
|
tem.setPointName(pointName);
|
|
|
tem.setSubmitName(String.valueOf(submitName));
|
|
|
- tem.setResValue(result > 0 ? 1 : 0);
|
|
|
+ //null:未执行 0:正常 1:异常
|
|
|
+ tem.setResValue(result);
|
|
|
+// tem.setResValue(result > 0 ? 1 : 0);
|
|
|
befs.add(tem);
|
|
|
}
|
|
|
return befs;
|